KILLED proof of input_Q9YhfOawoD.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) CpxTrsToCdtProof [UPPER BOUND(ID), 44 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (10) TRS for Loop Detection (11) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxRelTRS (13) TypeInferenceProof [BOTH BOUNDS(ID, ID), 13 ms] (14) typed CpxTrs (15) OrderProof [LOWER BOUND(ID), 0 ms] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 57.8 s] (18) typed CpxTrs (19) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (20) CpxWeightedTrs (21) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxTypedWeightedTrs (23) CompletionProof [UPPER BOUND(ID), 0 ms] (24) CpxTypedWeightedCompleteTrs (25) NarrowingProof [BOTH BOUNDS(ID, ID), 2905 ms] (26) CpxTypedWeightedCompleteTrs (27) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 10 ms] (28) CpxRNTS (29) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CpxRNTS (31) CompletionProof [UPPER BOUND(ID), 0 ms] (32) CpxTypedWeightedCompleteTrs (33) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (36) CdtProblem (37) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CpxRelTRS (41) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (42) CpxTRS (43) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CpxWeightedTrs (45) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CpxTypedWeightedTrs (47) CompletionProof [UPPER BOUND(ID), 0 ms] (48) CpxTypedWeightedCompleteTrs (49) CompletionProof [UPPER BOUND(ID), 56 ms] (50) CpxTypedWeightedCompleteTrs (51) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (52) CpxRNTS (53) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (54) CdtProblem (55) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (58) CdtProblem (59) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 47 ms] (62) CdtProblem (63) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 2 ms] (64) CdtProblem (65) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 26 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 91 ms] (70) CdtProblem (71) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 78 ms] (74) CdtProblem (75) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 57 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 5 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 91 ms] (86) CdtProblem (87) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 13 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 53 ms] (92) CdtProblem (93) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 16 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 13 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 147 ms] (98) CdtProblem (99) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 176 ms] (104) CdtProblem (105) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 27 ms] (106) CdtProblem (107) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 118 ms] (108) CdtProblem (109) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 16 ms] (110) CdtProblem (111) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 9 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 109 ms] (114) CdtProblem (115) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 9 ms] (116) CdtProblem (117) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 26 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 79 ms] (120) CdtProblem (121) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 92 ms] (126) CdtProblem (127) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 14 ms] (128) CdtProblem (129) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 12 ms] (130) CdtProblem (131) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 121 ms] (132) CdtProblem (133) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 13 ms] (134) CdtProblem (135) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 14 ms] (136) CdtProblem (137) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 198 ms] (138) CdtProblem (139) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 169 ms] (142) CdtProblem (143) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 4 ms] (144) CdtProblem (145) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 247 ms] (146) CdtProblem (147) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 259 ms] (150) CdtProblem (151) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (152) CdtProblem (153) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 199 ms] (154) CdtProblem (155) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (156) CdtProblem (157) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 218 ms] (158) CdtProblem (159) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 27 ms] (160) CdtProblem (161) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 206 ms] (162) CdtProblem (163) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 41 ms] (164) CdtProblem (165) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 193 ms] (166) CdtProblem (167) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 36 ms] (168) CdtProblem (169) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 180 ms] (170) CdtProblem (171) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 13 ms] (172) CdtProblem (173) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 267 ms] (174) CdtProblem (175) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 49 ms] (176) CdtProblem (177) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 183 ms] (178) CdtProblem (179) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 12 ms] (180) CdtProblem (181) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 338 ms] (182) CdtProblem (183) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 50 ms] (184) 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) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) 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 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: 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 The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (9) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (10) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: 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 The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (11) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (12) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: 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 The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (13) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (14) Obligation: Innermost TRS: Rules: 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 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 Types: A__U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c:c1:c2 tt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c :: c3:c4:c5 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c:c1:c2 A__U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c3:c4:c5 a__splitAt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil mark :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil A__SPLITAT :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c22:c23:c24 MARK :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c1 :: c3:c4:c5 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c:c1:c2 c2 :: c:c1:c2 pair :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c3:c4:c5 c4 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c3:c4:c5 c5 :: c3:c4:c5 A__AFTERNTH :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c6:c7:c8 c6 :: c20:c21 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c6:c7:c8 A__SND :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c20:c21 c7 :: c20:c21 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c6:c7:c8 c8 :: c6:c7:c8 A__AND :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c9:c10 c9 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c9:c10 c10 :: c9:c10 A__FST :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c11:c12 c11 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c11:c12 c12 :: c11:c12 A__HEAD :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c13:c14 cons :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c13 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c13:c14 c14 :: c13:c14 A__NATSFROM :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c15:c16 c15 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c15:c16 c16 :: c15:c16 A__SEL :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c17:c18:c19 c17 :: c13:c14 -> c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c17:c18:c19 a__afterNth :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c18 :: c13:c14 -> c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c17:c18:c19 c19 :: c17:c18:c19 c20 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c20:c21 c21 :: c20:c21 0' :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c22 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c22:c23:c24 s :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c23 :: c:c1:c2 -> c22:c23:c24 c24 :: c22:c23:c24 A__TAIL :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c25:c26 c25 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c25:c26 c26 :: c25:c26 A__TAKE :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c27:c28:c29 c27 :: c11:c12 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c27:c28:c29 c28 :: c11:c12 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c27:c28:c29 c29 :: c27:c28:c29 U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c30 :: c:c1:c2 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c31 :: c3:c4:c5 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 splitAt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c32 :: c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c33 :: c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 afterNth :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c34 :: c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c35 :: c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 snd :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c36 :: c20:c21 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 and :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c37 :: c9:c10 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 fst :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c38 :: c11:c12 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 head :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c39 :: c13:c14 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 natsFrom :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c40 :: c15:c16 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 sel :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c41 :: c17:c18:c19 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c42 :: c17:c18:c19 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 tail :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c43 :: c25:c26 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 take :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c44 :: c27:c28:c29 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c45 :: c27:c28:c29 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c46 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c47 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c48 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c49 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c50 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c51 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 nil :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c52 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 a__U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__snd :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__and :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__fst :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__head :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__natsFrom :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__sel :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__tail :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__take :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil hole_c:c1:c21_53 :: c:c1:c2 hole_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil2_53 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil hole_c3:c4:c53_53 :: c3:c4:c5 hole_c22:c23:c244_53 :: c22:c23:c24 hole_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c525_53 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 hole_c6:c7:c86_53 :: c6:c7:c8 hole_c20:c217_53 :: c20:c21 hole_c9:c108_53 :: c9:c10 hole_c11:c129_53 :: c11:c12 hole_c13:c1410_53 :: c13:c14 hole_c15:c1611_53 :: c15:c16 hole_c17:c18:c1912_53 :: c17:c18:c19 hole_c25:c2613_53 :: c25:c26 hole_c27:c28:c2914_53 :: c27:c28:c29 gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53 :: Nat -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53 :: Nat -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 ---------------------------------------- (15) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__U11, A__U12, a__splitAt, mark, A__SPLITAT, MARK, A__AFTERNTH, A__SND, A__FST, A__HEAD, A__NATSFROM, a__afterNth, A__TAIL, a__U11, a__U12, a__snd, a__fst, a__head, a__natsFrom, a__tail They will be analysed ascendingly in the following order: A__U11 = A__U12 a__splitAt < A__U11 mark < A__U11 A__U11 = A__SPLITAT A__U11 = MARK A__U11 = A__AFTERNTH A__U11 = A__SND A__U11 = A__FST A__U11 = A__HEAD A__U11 = A__NATSFROM A__U11 = A__TAIL A__U12 = A__SPLITAT A__U12 = MARK A__U12 = A__AFTERNTH A__U12 = A__SND A__U12 = A__FST A__U12 = A__HEAD A__U12 = A__NATSFROM A__U12 = A__TAIL a__splitAt = mark a__splitAt < MARK a__splitAt < A__AFTERNTH a__splitAt = a__afterNth a__splitAt = a__U11 a__splitAt = a__U12 a__splitAt = a__snd a__splitAt = a__fst a__splitAt = a__head a__splitAt = a__natsFrom a__splitAt = a__tail mark < MARK mark < A__AFTERNTH mark = a__afterNth mark = a__U11 mark = a__U12 mark = a__snd mark = a__fst mark = a__head mark = a__natsFrom mark = a__tail A__SPLITAT = MARK A__SPLITAT = A__AFTERNTH A__SPLITAT = A__SND A__SPLITAT = A__FST A__SPLITAT = A__HEAD A__SPLITAT = A__NATSFROM A__SPLITAT = A__TAIL MARK = A__AFTERNTH MARK = A__SND MARK = A__FST MARK = A__HEAD MARK = A__NATSFROM a__afterNth < MARK MARK = A__TAIL A__AFTERNTH = A__SND A__AFTERNTH = A__FST A__AFTERNTH = A__HEAD A__AFTERNTH = A__NATSFROM A__AFTERNTH = A__TAIL A__SND = A__FST A__SND = A__HEAD A__SND = A__NATSFROM A__SND = A__TAIL A__FST = A__HEAD A__FST = A__NATSFROM A__FST = A__TAIL A__HEAD = A__NATSFROM A__HEAD = A__TAIL A__NATSFROM = A__TAIL a__afterNth = a__U11 a__afterNth = a__U12 a__afterNth = a__snd a__afterNth = a__fst a__afterNth = a__head a__afterNth = a__natsFrom a__afterNth = a__tail a__U11 = a__U12 a__U11 = a__snd a__U11 = a__fst a__U11 = a__head a__U11 = a__natsFrom a__U11 = a__tail a__U12 = a__snd a__U12 = a__fst a__U12 = a__head a__U12 = a__natsFrom a__U12 = a__tail a__snd = a__fst a__snd = a__head a__snd = a__natsFrom a__snd = a__tail a__fst = a__head a__fst = a__natsFrom a__fst = a__tail a__head = a__natsFrom a__head = a__tail a__natsFrom = a__tail ---------------------------------------- (16) Obligation: Innermost TRS: Rules: 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 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 Types: A__U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c:c1:c2 tt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c :: c3:c4:c5 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c:c1:c2 A__U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c3:c4:c5 a__splitAt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil mark :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil A__SPLITAT :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c22:c23:c24 MARK :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c1 :: c3:c4:c5 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c:c1:c2 c2 :: c:c1:c2 pair :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c3:c4:c5 c4 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c3:c4:c5 c5 :: c3:c4:c5 A__AFTERNTH :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c6:c7:c8 c6 :: c20:c21 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c6:c7:c8 A__SND :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c20:c21 c7 :: c20:c21 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c6:c7:c8 c8 :: c6:c7:c8 A__AND :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c9:c10 c9 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c9:c10 c10 :: c9:c10 A__FST :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c11:c12 c11 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c11:c12 c12 :: c11:c12 A__HEAD :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c13:c14 cons :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c13 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c13:c14 c14 :: c13:c14 A__NATSFROM :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c15:c16 c15 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c15:c16 c16 :: c15:c16 A__SEL :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c17:c18:c19 c17 :: c13:c14 -> c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c17:c18:c19 a__afterNth :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c18 :: c13:c14 -> c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c17:c18:c19 c19 :: c17:c18:c19 c20 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c20:c21 c21 :: c20:c21 0' :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c22 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c22:c23:c24 s :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c23 :: c:c1:c2 -> c22:c23:c24 c24 :: c22:c23:c24 A__TAIL :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c25:c26 c25 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c25:c26 c26 :: c25:c26 A__TAKE :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c27:c28:c29 c27 :: c11:c12 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c27:c28:c29 c28 :: c11:c12 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c27:c28:c29 c29 :: c27:c28:c29 U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c30 :: c:c1:c2 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c31 :: c3:c4:c5 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 splitAt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c32 :: c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c33 :: c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 afterNth :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c34 :: c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c35 :: c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 snd :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c36 :: c20:c21 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 and :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c37 :: c9:c10 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 fst :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c38 :: c11:c12 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 head :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c39 :: c13:c14 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 natsFrom :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c40 :: c15:c16 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 sel :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c41 :: c17:c18:c19 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c42 :: c17:c18:c19 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 tail :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c43 :: c25:c26 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 take :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c44 :: c27:c28:c29 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c45 :: c27:c28:c29 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c46 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c47 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c48 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c49 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c50 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c51 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 nil :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c52 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 a__U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__snd :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__and :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__fst :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__head :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__natsFrom :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__sel :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__tail :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__take :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil hole_c:c1:c21_53 :: c:c1:c2 hole_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil2_53 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil hole_c3:c4:c53_53 :: c3:c4:c5 hole_c22:c23:c244_53 :: c22:c23:c24 hole_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c525_53 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 hole_c6:c7:c86_53 :: c6:c7:c8 hole_c20:c217_53 :: c20:c21 hole_c9:c108_53 :: c9:c10 hole_c11:c129_53 :: c11:c12 hole_c13:c1410_53 :: c13:c14 hole_c15:c1611_53 :: c15:c16 hole_c17:c18:c1912_53 :: c17:c18:c19 hole_c25:c2613_53 :: c25:c26 hole_c27:c28:c2914_53 :: c27:c28:c29 gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53 :: Nat -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53 :: Nat -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 Generator Equations: gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(0) <=> tt gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(+(x, 1)) <=> pair(tt, gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(x)) gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53(0) <=> c46 gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53(+(x, 1)) <=> c30(c(c3(c46), c22(c46), c46), gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53(x)) The following defined symbols remain to be analysed: mark, A__U11, A__U12, a__splitAt, A__SPLITAT, MARK, A__AFTERNTH, A__SND, A__FST, A__HEAD, A__NATSFROM, a__afterNth, A__TAIL, a__U11, a__U12, a__snd, a__fst, a__head, a__natsFrom, a__tail They will be analysed ascendingly in the following order: A__U11 = A__U12 a__splitAt < A__U11 mark < A__U11 A__U11 = A__SPLITAT A__U11 = MARK A__U11 = A__AFTERNTH A__U11 = A__SND A__U11 = A__FST A__U11 = A__HEAD A__U11 = A__NATSFROM A__U11 = A__TAIL A__U12 = A__SPLITAT A__U12 = MARK A__U12 = A__AFTERNTH A__U12 = A__SND A__U12 = A__FST A__U12 = A__HEAD A__U12 = A__NATSFROM A__U12 = A__TAIL a__splitAt = mark a__splitAt < MARK a__splitAt < A__AFTERNTH a__splitAt = a__afterNth a__splitAt = a__U11 a__splitAt = a__U12 a__splitAt = a__snd a__splitAt = a__fst a__splitAt = a__head a__splitAt = a__natsFrom a__splitAt = a__tail mark < MARK mark < A__AFTERNTH mark = a__afterNth mark = a__U11 mark = a__U12 mark = a__snd mark = a__fst mark = a__head mark = a__natsFrom mark = a__tail A__SPLITAT = MARK A__SPLITAT = A__AFTERNTH A__SPLITAT = A__SND A__SPLITAT = A__FST A__SPLITAT = A__HEAD A__SPLITAT = A__NATSFROM A__SPLITAT = A__TAIL MARK = A__AFTERNTH MARK = A__SND MARK = A__FST MARK = A__HEAD MARK = A__NATSFROM a__afterNth < MARK MARK = A__TAIL A__AFTERNTH = A__SND A__AFTERNTH = A__FST A__AFTERNTH = A__HEAD A__AFTERNTH = A__NATSFROM A__AFTERNTH = A__TAIL A__SND = A__FST A__SND = A__HEAD A__SND = A__NATSFROM A__SND = A__TAIL A__FST = A__HEAD A__FST = A__NATSFROM A__FST = A__TAIL A__HEAD = A__NATSFROM A__HEAD = A__TAIL A__NATSFROM = A__TAIL a__afterNth = a__U11 a__afterNth = a__U12 a__afterNth = a__snd a__afterNth = a__fst a__afterNth = a__head a__afterNth = a__natsFrom a__afterNth = a__tail a__U11 = a__U12 a__U11 = a__snd a__U11 = a__fst a__U11 = a__head a__U11 = a__natsFrom a__U11 = a__tail a__U12 = a__snd a__U12 = a__fst a__U12 = a__head a__U12 = a__natsFrom a__U12 = a__tail a__snd = a__fst a__snd = a__head a__snd = a__natsFrom a__snd = a__tail a__fst = a__head a__fst = a__natsFrom a__fst = a__tail a__head = a__natsFrom a__head = a__tail a__natsFrom = a__tail ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(n18_53)) -> gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(n18_53), rt in Omega(0) Induction Base: mark(gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(0)) ->_R^Omega(0) tt Induction Step: mark(gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(+(n18_53, 1))) ->_R^Omega(0) pair(mark(tt), mark(gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(n18_53))) ->_R^Omega(0) pair(tt, mark(gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(n18_53))) ->_IH pair(tt, gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(c19_53)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (18) Obligation: Innermost TRS: Rules: 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 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 Types: A__U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c:c1:c2 tt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c :: c3:c4:c5 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c:c1:c2 A__U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c3:c4:c5 a__splitAt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil mark :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil A__SPLITAT :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c22:c23:c24 MARK :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c1 :: c3:c4:c5 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c:c1:c2 c2 :: c:c1:c2 pair :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c3:c4:c5 c4 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c3:c4:c5 c5 :: c3:c4:c5 A__AFTERNTH :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c6:c7:c8 c6 :: c20:c21 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c6:c7:c8 A__SND :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c20:c21 c7 :: c20:c21 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c6:c7:c8 c8 :: c6:c7:c8 A__AND :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c9:c10 c9 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c9:c10 c10 :: c9:c10 A__FST :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c11:c12 c11 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c11:c12 c12 :: c11:c12 A__HEAD :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c13:c14 cons :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c13 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c13:c14 c14 :: c13:c14 A__NATSFROM :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c15:c16 c15 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c15:c16 c16 :: c15:c16 A__SEL :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c17:c18:c19 c17 :: c13:c14 -> c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c17:c18:c19 a__afterNth :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c18 :: c13:c14 -> c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c17:c18:c19 c19 :: c17:c18:c19 c20 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c20:c21 c21 :: c20:c21 0' :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c22 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c22:c23:c24 s :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c23 :: c:c1:c2 -> c22:c23:c24 c24 :: c22:c23:c24 A__TAIL :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c25:c26 c25 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c25:c26 c26 :: c25:c26 A__TAKE :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c27:c28:c29 c27 :: c11:c12 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c27:c28:c29 c28 :: c11:c12 -> c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c27:c28:c29 c29 :: c27:c28:c29 U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c30 :: c:c1:c2 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c31 :: c3:c4:c5 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 splitAt :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c32 :: c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c33 :: c22:c23:c24 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 afterNth :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c34 :: c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c35 :: c6:c7:c8 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 snd :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c36 :: c20:c21 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 and :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c37 :: c9:c10 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 fst :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c38 :: c11:c12 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 head :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c39 :: c13:c14 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 natsFrom :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c40 :: c15:c16 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 sel :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c41 :: c17:c18:c19 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c42 :: c17:c18:c19 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 tail :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c43 :: c25:c26 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 take :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c44 :: c27:c28:c29 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c45 :: c27:c28:c29 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c46 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c47 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c48 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c49 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c50 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 c51 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 nil :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c52 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 a__U11 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__U12 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__snd :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__and :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__fst :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__head :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__natsFrom :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__sel :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__tail :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__take :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil hole_c:c1:c21_53 :: c:c1:c2 hole_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil2_53 :: tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil hole_c3:c4:c53_53 :: c3:c4:c5 hole_c22:c23:c244_53 :: c22:c23:c24 hole_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c525_53 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 hole_c6:c7:c86_53 :: c6:c7:c8 hole_c20:c217_53 :: c20:c21 hole_c9:c108_53 :: c9:c10 hole_c11:c129_53 :: c11:c12 hole_c13:c1410_53 :: c13:c14 hole_c15:c1611_53 :: c15:c16 hole_c17:c18:c1912_53 :: c17:c18:c19 hole_c25:c2613_53 :: c25:c26 hole_c27:c28:c2914_53 :: c27:c28:c29 gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53 :: Nat -> tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53 :: Nat -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c52 Lemmas: mark(gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(n18_53)) -> gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(n18_53), rt in Omega(0) Generator Equations: gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(0) <=> tt gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(+(x, 1)) <=> pair(tt, gen_tt:pair:cons:0':s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil15_53(x)) gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53(0) <=> c46 gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53(+(x, 1)) <=> c30(c(c3(c46), c22(c46), c46), gen_c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49:c50:c51:c5216_53(x)) The following defined symbols remain to be analysed: a__U11, A__U11, A__U12, a__splitAt, A__SPLITAT, MARK, A__AFTERNTH, A__SND, A__FST, A__HEAD, A__NATSFROM, a__afterNth, A__TAIL, a__U12, a__snd, a__fst, a__head, a__natsFrom, a__tail They will be analysed ascendingly in the following order: A__U11 = A__U12 a__splitAt < A__U11 mark < A__U11 A__U11 = A__SPLITAT A__U11 = MARK A__U11 = A__AFTERNTH A__U11 = A__SND A__U11 = A__FST A__U11 = A__HEAD A__U11 = A__NATSFROM A__U11 = A__TAIL A__U12 = A__SPLITAT A__U12 = MARK A__U12 = A__AFTERNTH A__U12 = A__SND A__U12 = A__FST A__U12 = A__HEAD A__U12 = A__NATSFROM A__U12 = A__TAIL a__splitAt = mark a__splitAt < MARK a__splitAt < A__AFTERNTH a__splitAt = a__afterNth a__splitAt = a__U11 a__splitAt = a__U12 a__splitAt = a__snd a__splitAt = a__fst a__splitAt = a__head a__splitAt = a__natsFrom a__splitAt = a__tail mark < MARK mark < A__AFTERNTH mark = a__afterNth mark = a__U11 mark = a__U12 mark = a__snd mark = a__fst mark = a__head mark = a__natsFrom mark = a__tail A__SPLITAT = MARK A__SPLITAT = A__AFTERNTH A__SPLITAT = A__SND A__SPLITAT = A__FST A__SPLITAT = A__HEAD A__SPLITAT = A__NATSFROM A__SPLITAT = A__TAIL MARK = A__AFTERNTH MARK = A__SND MARK = A__FST MARK = A__HEAD MARK = A__NATSFROM a__afterNth < MARK MARK = A__TAIL A__AFTERNTH = A__SND A__AFTERNTH = A__FST A__AFTERNTH = A__HEAD A__AFTERNTH = A__NATSFROM A__AFTERNTH = A__TAIL A__SND = A__FST A__SND = A__HEAD A__SND = A__NATSFROM A__SND = A__TAIL A__FST = A__HEAD A__FST = A__NATSFROM A__FST = A__TAIL A__HEAD = A__NATSFROM A__HEAD = A__TAIL A__NATSFROM = A__TAIL a__afterNth = a__U11 a__afterNth = a__U12 a__afterNth = a__snd a__afterNth = a__fst a__afterNth = a__head a__afterNth = a__natsFrom a__afterNth = a__tail a__U11 = a__U12 a__U11 = a__snd a__U11 = a__fst a__U11 = a__head a__U11 = a__natsFrom a__U11 = a__tail a__U12 = a__snd a__U12 = a__fst a__U12 = a__head a__U12 = a__natsFrom a__U12 = a__tail a__snd = a__fst a__snd = a__head a__snd = a__natsFrom a__snd = a__tail a__fst = a__head a__fst = a__natsFrom a__fst = a__tail a__head = a__natsFrom a__head = a__tail a__natsFrom = a__tail ---------------------------------------- (19) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (20) 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 ---------------------------------------- (21) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (22) 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 ---------------------------------------- (23) 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 ---------------------------------------- (24) 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 ---------------------------------------- (25) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (26) 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 ---------------------------------------- (27) 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 ---------------------------------------- (28) 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 ---------------------------------------- (29) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (30) 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 ---------------------------------------- (31) 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 ---------------------------------------- (32) 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 ---------------------------------------- (33) 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 ---------------------------------------- (34) 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. ---------------------------------------- (35) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (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__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 ---------------------------------------- (37) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 15 trailing nodes: A__U11(z0, z1, z2, z3) -> c2 MARK(tt) -> c46 A__SEL(z0, z1) -> c19 A__U12(z0, z1) -> c5 A__SND(z0) -> c21 A__NATSFROM(z0) -> c16 A__HEAD(z0) -> c14 A__AFTERNTH(z0, z1) -> c8 A__TAIL(z0) -> c26 A__TAKE(z0, z1) -> c29 A__AND(z0, z1) -> c10 A__SPLITAT(z0, z1) -> c24 A__FST(z0) -> c12 MARK(0) -> c51 MARK(nil) -> c52 ---------------------------------------- (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__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 ---------------------------------------- (39) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (40) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: 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)) The (relative) TRS S consists of the following 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 Rewrite Strategy: INNERMOST ---------------------------------------- (41) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (42) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: 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)) 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 S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (43) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (44) 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, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) [1] A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) [1] A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] A__AND(tt, z0) -> c9(MARK(z0)) [1] A__FST(pair(z0, z1)) -> c11(MARK(z0)) [1] A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) [1] A__NATSFROM(z0) -> c15(MARK(z0)) [1] A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] A__SND(pair(z0, z1)) -> c20(MARK(z1)) [1] A__SPLITAT(0, z0) -> c22(MARK(z0)) [1] A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) [1] A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) [1] A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) [1] MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) [1] MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) [1] MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(pair(z0, z1)) -> c47(MARK(z0)) [1] MARK(pair(z0, z1)) -> c48(MARK(z1)) [1] MARK(cons(z0, z1)) -> c49(MARK(z0)) [1] MARK(s(z0)) -> c50(MARK(z0)) [1] a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) [0] a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) [0] a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) [0] a__U12(z0, z1) -> U12(z0, z1) [0] a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) [0] a__afterNth(z0, z1) -> afterNth(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__fst(pair(z0, z1)) -> mark(z0) [0] a__fst(z0) -> fst(z0) [0] a__head(cons(z0, z1)) -> mark(z0) [0] a__head(z0) -> head(z0) [0] a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) [0] a__natsFrom(z0) -> natsFrom(z0) [0] a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) [0] a__sel(z0, z1) -> sel(z0, z1) [0] a__snd(pair(z0, z1)) -> mark(z1) [0] a__snd(z0) -> snd(z0) [0] a__splitAt(0, z0) -> pair(nil, mark(z0)) [0] a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) [0] a__splitAt(z0, z1) -> splitAt(z0, z1) [0] a__tail(cons(z0, z1)) -> mark(z1) [0] a__tail(z0) -> tail(z0) [0] a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) [0] mark(U12(z0, z1)) -> a__U12(mark(z0), z1) [0] mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) [0] mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) [0] mark(snd(z0)) -> a__snd(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(fst(z0)) -> a__fst(mark(z0)) [0] mark(head(z0)) -> a__head(mark(z0)) [0] mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) [0] mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) [0] mark(tail(z0)) -> a__tail(mark(z0)) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(tt) -> tt [0] mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] Rewrite Strategy: INNERMOST ---------------------------------------- (45) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (46) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__U11(tt, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) [1] A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) [1] A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] A__AND(tt, z0) -> c9(MARK(z0)) [1] A__FST(pair(z0, z1)) -> c11(MARK(z0)) [1] A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) [1] A__NATSFROM(z0) -> c15(MARK(z0)) [1] A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] A__SND(pair(z0, z1)) -> c20(MARK(z1)) [1] A__SPLITAT(0, z0) -> c22(MARK(z0)) [1] A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) [1] A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) [1] A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) [1] MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) [1] MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) [1] MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(pair(z0, z1)) -> c47(MARK(z0)) [1] MARK(pair(z0, z1)) -> c48(MARK(z1)) [1] MARK(cons(z0, z1)) -> c49(MARK(z0)) [1] MARK(s(z0)) -> c50(MARK(z0)) [1] a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) [0] a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) [0] a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) [0] a__U12(z0, z1) -> U12(z0, z1) [0] a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) [0] a__afterNth(z0, z1) -> afterNth(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__fst(pair(z0, z1)) -> mark(z0) [0] a__fst(z0) -> fst(z0) [0] a__head(cons(z0, z1)) -> mark(z0) [0] a__head(z0) -> head(z0) [0] a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) [0] a__natsFrom(z0) -> natsFrom(z0) [0] a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) [0] a__sel(z0, z1) -> sel(z0, z1) [0] a__snd(pair(z0, z1)) -> mark(z1) [0] a__snd(z0) -> snd(z0) [0] a__splitAt(0, z0) -> pair(nil, mark(z0)) [0] a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) [0] a__splitAt(z0, z1) -> splitAt(z0, z1) [0] a__tail(cons(z0, z1)) -> mark(z1) [0] a__tail(z0) -> tail(z0) [0] a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) [0] mark(U12(z0, z1)) -> a__U12(mark(z0), z1) [0] mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) [0] mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) [0] mark(snd(z0)) -> a__snd(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(fst(z0)) -> a__fst(mark(z0)) [0] mark(head(z0)) -> a__head(mark(z0)) [0] mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) [0] mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) [0] mark(tail(z0)) -> a__tail(mark(z0)) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(tt) -> tt [0] mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] The TRS has the following type information: A__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c:c1 tt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c :: c3:c4 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c:c1 A__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c3:c4 a__splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil mark :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil A__SPLITAT :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c22:c23 MARK :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c1 :: c3:c4 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c:c1 pair :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c3:c4 c4 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c3:c4 A__AFTERNTH :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c6:c7 c6 :: c20 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c6:c7 A__SND :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c20 c7 :: c20 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c6:c7 A__AND :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c9 c9 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c9 A__FST :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c11 c11 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c11 A__HEAD :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c13 cons :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c13 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c13 A__NATSFROM :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c15 c15 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c15 A__SEL :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c17:c18 c17 :: c13 -> c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c17:c18 a__afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c18 :: c13 -> c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c17:c18 c20 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c20 0 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c22 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c22:c23 s :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c23 :: c:c1 -> c22:c23 A__TAIL :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c25 c25 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c25 A__TAKE :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> c27:c28 c27 :: c11 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c27:c28 c28 :: c11 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c27:c28 U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c30 :: c:c1 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c31 :: c3:c4 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c32 :: c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c33 :: c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c34 :: c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c35 :: c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c36 :: c20 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c37 :: c9 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c38 :: c11 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c39 :: c13 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c40 :: c15 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c41 :: c17:c18 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c42 :: c17:c18 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c43 :: c25 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil c44 :: c27:c28 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c45 :: c27:c28 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c47 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c48 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c49 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c50 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 a__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil nil :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil a__take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil Rewrite Strategy: INNERMOST ---------------------------------------- (47) 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: 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 (c) The following functions are completely defined: 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 Due to the following rules being added: a__U11(v0, v1, v2, v3) -> null_a__U11 [0] a__U12(v0, v1) -> null_a__U12 [0] a__afterNth(v0, v1) -> null_a__afterNth [0] a__and(v0, v1) -> null_a__and [0] a__fst(v0) -> null_a__fst [0] a__head(v0) -> null_a__head [0] a__natsFrom(v0) -> null_a__natsFrom [0] a__sel(v0, v1) -> null_a__sel [0] a__snd(v0) -> null_a__snd [0] a__splitAt(v0, v1) -> null_a__splitAt [0] a__tail(v0) -> null_a__tail [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__U11, null_a__U12, null_a__afterNth, null_a__and, null_a__fst, null_a__head, null_a__natsFrom, null_a__sel, null_a__snd, null_a__splitAt, null_a__tail, null_a__take, null_mark, const, const1, const2, const3, const4, const5, const6, const7, const8, const9, const10, const11, const12 ---------------------------------------- (48) 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, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) [1] A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) [1] A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] A__AND(tt, z0) -> c9(MARK(z0)) [1] A__FST(pair(z0, z1)) -> c11(MARK(z0)) [1] A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) [1] A__NATSFROM(z0) -> c15(MARK(z0)) [1] A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] A__SND(pair(z0, z1)) -> c20(MARK(z1)) [1] A__SPLITAT(0, z0) -> c22(MARK(z0)) [1] A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) [1] A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) [1] A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) [1] MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) [1] MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) [1] MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(pair(z0, z1)) -> c47(MARK(z0)) [1] MARK(pair(z0, z1)) -> c48(MARK(z1)) [1] MARK(cons(z0, z1)) -> c49(MARK(z0)) [1] MARK(s(z0)) -> c50(MARK(z0)) [1] a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) [0] a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) [0] a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) [0] a__U12(z0, z1) -> U12(z0, z1) [0] a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) [0] a__afterNth(z0, z1) -> afterNth(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__fst(pair(z0, z1)) -> mark(z0) [0] a__fst(z0) -> fst(z0) [0] a__head(cons(z0, z1)) -> mark(z0) [0] a__head(z0) -> head(z0) [0] a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) [0] a__natsFrom(z0) -> natsFrom(z0) [0] a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) [0] a__sel(z0, z1) -> sel(z0, z1) [0] a__snd(pair(z0, z1)) -> mark(z1) [0] a__snd(z0) -> snd(z0) [0] a__splitAt(0, z0) -> pair(nil, mark(z0)) [0] a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) [0] a__splitAt(z0, z1) -> splitAt(z0, z1) [0] a__tail(cons(z0, z1)) -> mark(z1) [0] a__tail(z0) -> tail(z0) [0] a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) [0] mark(U12(z0, z1)) -> a__U12(mark(z0), z1) [0] mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) [0] mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) [0] mark(snd(z0)) -> a__snd(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(fst(z0)) -> a__fst(mark(z0)) [0] mark(head(z0)) -> a__head(mark(z0)) [0] mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) [0] mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) [0] mark(tail(z0)) -> a__tail(mark(z0)) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(tt) -> tt [0] mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] a__U11(v0, v1, v2, v3) -> null_a__U11 [0] a__U12(v0, v1) -> null_a__U12 [0] a__afterNth(v0, v1) -> null_a__afterNth [0] a__and(v0, v1) -> null_a__and [0] a__fst(v0) -> null_a__fst [0] a__head(v0) -> null_a__head [0] a__natsFrom(v0) -> null_a__natsFrom [0] a__sel(v0, v1) -> null_a__sel [0] a__snd(v0) -> null_a__snd [0] a__splitAt(v0, v1) -> null_a__splitAt [0] a__tail(v0) -> null_a__tail [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c:c1 tt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c :: c3:c4 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c:c1 A__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c3:c4 a__splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark mark :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark A__SPLITAT :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c22:c23 MARK :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c1 :: c3:c4 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c:c1 pair :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c3:c4 c4 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c3:c4 A__AFTERNTH :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c6:c7 c6 :: c20 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c6:c7 A__SND :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c20 c7 :: c20 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c6:c7 A__AND :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c9 c9 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c9 A__FST :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c11 c11 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c11 A__HEAD :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c13 cons :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c13 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c13 A__NATSFROM :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c15 c15 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c15 A__SEL :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c17:c18 c17 :: c13 -> c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c17:c18 a__afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c18 :: c13 -> c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c17:c18 c20 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c20 0 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c22 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c22:c23 s :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c23 :: c:c1 -> c22:c23 A__TAIL :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c25 c25 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c25 A__TAKE :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c27:c28 c27 :: c11 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c27:c28 c28 :: c11 -> c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c27:c28 U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c30 :: c:c1 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c31 :: c3:c4 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c32 :: c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c33 :: c22:c23 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c34 :: c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c35 :: c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c36 :: c20 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c37 :: c9 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c38 :: c11 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c39 :: c13 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c40 :: c15 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c41 :: c17:c18 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c42 :: c17:c18 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c43 :: c25 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c44 :: c27:c28 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c45 :: c27:c28 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c47 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c48 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c49 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 c50 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 a__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark nil :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_mark :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark const :: c:c1 const1 :: c3:c4 const2 :: c22:c23 const3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50 const4 :: c6:c7 const5 :: c20 const6 :: c9 const7 :: c11 const8 :: c13 const9 :: c15 const10 :: c17:c18 const11 :: c25 const12 :: c27:c28 Rewrite Strategy: INNERMOST ---------------------------------------- (49) 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: a__U11(v0, v1, v2, v3) -> null_a__U11 [0] a__U12(v0, v1) -> null_a__U12 [0] a__afterNth(v0, v1) -> null_a__afterNth [0] a__and(v0, v1) -> null_a__and [0] a__fst(v0) -> null_a__fst [0] a__head(v0) -> null_a__head [0] a__natsFrom(v0) -> null_a__natsFrom [0] a__sel(v0, v1) -> null_a__sel [0] a__snd(v0) -> null_a__snd [0] a__splitAt(v0, v1) -> null_a__splitAt [0] a__tail(v0) -> null_a__tail [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] A__U11(v0, v1, v2, v3) -> null_A__U11 [0] A__U12(v0, v1) -> null_A__U12 [0] A__AND(v0, v1) -> null_A__AND [0] A__FST(v0) -> null_A__FST [0] A__HEAD(v0) -> null_A__HEAD [0] A__SND(v0) -> null_A__SND [0] A__SPLITAT(v0, v1) -> null_A__SPLITAT [0] A__TAIL(v0) -> null_A__TAIL [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__U11, null_a__U12, null_a__afterNth, null_a__and, null_a__fst, null_a__head, null_a__natsFrom, null_a__sel, null_a__snd, null_a__splitAt, null_a__tail, null_a__take, null_mark, null_A__U11, null_A__U12, null_A__AND, null_A__FST, null_A__HEAD, null_A__SND, null_A__SPLITAT, null_A__TAIL, null_MARK, const, const1, const2, const3 ---------------------------------------- (50) 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, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) [1] A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) [1] A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) [1] A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] A__AND(tt, z0) -> c9(MARK(z0)) [1] A__FST(pair(z0, z1)) -> c11(MARK(z0)) [1] A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) [1] A__NATSFROM(z0) -> c15(MARK(z0)) [1] A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] A__SND(pair(z0, z1)) -> c20(MARK(z1)) [1] A__SPLITAT(0, z0) -> c22(MARK(z0)) [1] A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) [1] A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) [1] A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) [1] MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) [1] MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) [1] MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) [1] MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) [1] MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) [1] MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) [1] MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) [1] MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) [1] MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(pair(z0, z1)) -> c47(MARK(z0)) [1] MARK(pair(z0, z1)) -> c48(MARK(z1)) [1] MARK(cons(z0, z1)) -> c49(MARK(z0)) [1] MARK(s(z0)) -> c50(MARK(z0)) [1] a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) [0] a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) [0] a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) [0] a__U12(z0, z1) -> U12(z0, z1) [0] a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) [0] a__afterNth(z0, z1) -> afterNth(z0, z1) [0] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__fst(pair(z0, z1)) -> mark(z0) [0] a__fst(z0) -> fst(z0) [0] a__head(cons(z0, z1)) -> mark(z0) [0] a__head(z0) -> head(z0) [0] a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) [0] a__natsFrom(z0) -> natsFrom(z0) [0] a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) [0] a__sel(z0, z1) -> sel(z0, z1) [0] a__snd(pair(z0, z1)) -> mark(z1) [0] a__snd(z0) -> snd(z0) [0] a__splitAt(0, z0) -> pair(nil, mark(z0)) [0] a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) [0] a__splitAt(z0, z1) -> splitAt(z0, z1) [0] a__tail(cons(z0, z1)) -> mark(z1) [0] a__tail(z0) -> tail(z0) [0] a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) [0] a__take(z0, z1) -> take(z0, z1) [0] mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) [0] mark(U12(z0, z1)) -> a__U12(mark(z0), z1) [0] mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) [0] mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) [0] mark(snd(z0)) -> a__snd(mark(z0)) [0] mark(and(z0, z1)) -> a__and(mark(z0), z1) [0] mark(fst(z0)) -> a__fst(mark(z0)) [0] mark(head(z0)) -> a__head(mark(z0)) [0] mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) [0] mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) [0] mark(tail(z0)) -> a__tail(mark(z0)) [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(tt) -> tt [0] mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] a__U11(v0, v1, v2, v3) -> null_a__U11 [0] a__U12(v0, v1) -> null_a__U12 [0] a__afterNth(v0, v1) -> null_a__afterNth [0] a__and(v0, v1) -> null_a__and [0] a__fst(v0) -> null_a__fst [0] a__head(v0) -> null_a__head [0] a__natsFrom(v0) -> null_a__natsFrom [0] a__sel(v0, v1) -> null_a__sel [0] a__snd(v0) -> null_a__snd [0] a__splitAt(v0, v1) -> null_a__splitAt [0] a__tail(v0) -> null_a__tail [0] a__take(v0, v1) -> null_a__take [0] mark(v0) -> null_mark [0] A__U11(v0, v1, v2, v3) -> null_A__U11 [0] A__U12(v0, v1) -> null_A__U12 [0] A__AND(v0, v1) -> null_A__AND [0] A__FST(v0) -> null_A__FST [0] A__HEAD(v0) -> null_A__HEAD [0] A__SND(v0) -> null_A__SND [0] A__SPLITAT(v0, v1) -> null_A__SPLITAT [0] A__TAIL(v0) -> null_A__TAIL [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c:c1:null_A__U11 tt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c :: c3:c4:null_A__U12 -> c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c:c1:null_A__U11 A__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c3:c4:null_A__U12 a__splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark mark :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark A__SPLITAT :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c22:c23:null_A__SPLITAT MARK :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c1 :: c3:c4:null_A__U12 -> c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c:c1:null_A__U11 pair :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c3 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c3:c4:null_A__U12 c4 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c3:c4:null_A__U12 A__AFTERNTH :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c6:c7 c6 :: c20:null_A__SND -> c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c6:c7 A__SND :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c20:null_A__SND c7 :: c20:null_A__SND -> c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c6:c7 A__AND :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c9:null_A__AND c9 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c9:null_A__AND A__FST :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c11:null_A__FST c11 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c11:null_A__FST A__HEAD :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c13:null_A__HEAD cons :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c13 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c13:null_A__HEAD A__NATSFROM :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c15 c15 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c15 A__SEL :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c17:c18 c17 :: c13:null_A__HEAD -> c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c17:c18 a__afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c18 :: c13:null_A__HEAD -> c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c17:c18 c20 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c20:null_A__SND 0 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c22 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c22:c23:null_A__SPLITAT s :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c23 :: c:c1:null_A__U11 -> c22:c23:null_A__SPLITAT A__TAIL :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c25:null_A__TAIL c25 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c25:null_A__TAIL A__TAKE :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> c27:c28 c27 :: c11:null_A__FST -> c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c27:c28 c28 :: c11:null_A__FST -> c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c27:c28 U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c30 :: c:c1:null_A__U11 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c31 :: c3:c4:null_A__U12 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c32 :: c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c33 :: c22:c23:null_A__SPLITAT -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c34 :: c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c35 :: c6:c7 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c36 :: c20:null_A__SND -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c37 :: c9:null_A__AND -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c38 :: c11:null_A__FST -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c39 :: c13:null_A__HEAD -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c40 :: c15 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c41 :: c17:c18 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c42 :: c17:c18 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c43 :: c25:null_A__TAIL -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark c44 :: c27:c28 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c45 :: c27:c28 -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c47 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c48 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c49 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK c50 :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK -> c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK a__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark nil :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark a__take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark -> tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__U11 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__U12 :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__afterNth :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__and :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__fst :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__head :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__natsFrom :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__sel :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__snd :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__splitAt :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__tail :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_a__take :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_mark :: tt:pair:cons:0:s:U11:U12:splitAt:afterNth:snd:and:fst:head:natsFrom:sel:tail:take:nil:null_a__U11:null_a__U12:null_a__afterNth:null_a__and:null_a__fst:null_a__head:null_a__natsFrom:null_a__sel:null_a__snd:null_a__splitAt:null_a__tail:null_a__take:null_mark null_A__U11 :: c:c1:null_A__U11 null_A__U12 :: c3:c4:null_A__U12 null_A__AND :: c9:null_A__AND null_A__FST :: c11:null_A__FST null_A__HEAD :: c13:null_A__HEAD null_A__SND :: c20:null_A__SND null_A__SPLITAT :: c22:c23:null_A__SPLITAT null_A__TAIL :: c25:null_A__TAIL null_MARK :: c30:c31:c32:c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c47:c48:c49:c50:null_MARK const :: c6:c7 const1 :: c15 const2 :: c17:c18 const3 :: c27:c28 Rewrite Strategy: INNERMOST ---------------------------------------- (51) 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 null_a__U11 => 0 null_a__U12 => 0 null_a__afterNth => 0 null_a__and => 0 null_a__fst => 0 null_a__head => 0 null_a__natsFrom => 0 null_a__sel => 0 null_a__snd => 0 null_a__splitAt => 0 null_a__tail => 0 null_a__take => 0 null_mark => 0 null_A__U11 => 0 null_A__U12 => 0 null_A__AND => 0 null_A__FST => 0 null_A__HEAD => 0 null_A__SND => 0 null_A__SPLITAT => 0 null_A__TAIL => 0 null_MARK => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: A__AFTERNTH(z, z') -{ 1 }-> 1 + A__SND(a__splitAt(mark(z0), mark(z1))) + A__SPLITAT(mark(z0), mark(z1)) + MARK(z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 A__AFTERNTH(z, z') -{ 1 }-> 1 + A__SND(a__splitAt(mark(z0), mark(z1))) + A__SPLITAT(mark(z0), mark(z1)) + MARK(z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 A__AND(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__AND(z, z') -{ 1 }-> 1 + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__FST(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__FST(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__HEAD(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__HEAD(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__NATSFROM(z) -{ 1 }-> 1 + MARK(z0) :|: z = z0, z0 >= 0 A__SEL(z, z') -{ 1 }-> 1 + A__HEAD(a__afterNth(mark(z0), mark(z1))) + A__AFTERNTH(mark(z0), mark(z1)) + MARK(z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 A__SEL(z, z') -{ 1 }-> 1 + A__HEAD(a__afterNth(mark(z0), mark(z1))) + A__AFTERNTH(mark(z0), mark(z1)) + MARK(z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 A__SND(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__SND(z) -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__SPLITAT(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__SPLITAT(z, z') -{ 1 }-> 1 + MARK(z0) :|: z0 >= 0, z = 0, z' = z0 A__SPLITAT(z, z') -{ 1 }-> 1 + A__U11(2, z0, z1, z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__TAIL(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__TAIL(z) -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__TAKE(z, z') -{ 1 }-> 1 + A__FST(a__splitAt(mark(z0), mark(z1))) + A__SPLITAT(mark(z0), mark(z1)) + MARK(z0) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 A__TAKE(z, z') -{ 1 }-> 1 + A__FST(a__splitAt(mark(z0), mark(z1))) + A__SPLITAT(mark(z0), mark(z1)) + MARK(z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 A__U11(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 A__U11(z, z', z'', z4) -{ 1 }-> 1 + A__U12(a__splitAt(mark(z0), mark(z2)), z1) + A__SPLITAT(mark(z0), mark(z2)) + MARK(z0) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 A__U11(z, z', z'', z4) -{ 1 }-> 1 + A__U12(a__splitAt(mark(z0), mark(z2)), z1) + A__SPLITAT(mark(z0), mark(z2)) + MARK(z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 A__U12(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__U12(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 A__U12(z, z') -{ 1 }-> 1 + MARK(z2) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 MARK(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U12(mark(z0), z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__U11(mark(z0), z1, z2, z3) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAKE(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__TAIL(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__SPLITAT(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__SPLITAT(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__SND(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__SEL(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__SEL(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__NATSFROM(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__HEAD(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FST(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__AND(mark(z0), z1) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AFTERNTH(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AFTERNTH(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__U11(z, z', z'', z4) -{ 0 }-> a__U12(a__splitAt(mark(z0), mark(z2)), z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 a__U11(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 a__U11(z, z', z'', z4) -{ 0 }-> 1 + z0 + z1 + z2 + z3 :|: z'' = z2, z = z0, z1 >= 0, z' = z1, z0 >= 0, z4 = z3, z2 >= 0, z3 >= 0 a__U12(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__U12(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__U12(z, z') -{ 0 }-> 1 + (1 + mark(z2) + z0) + mark(z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 a__afterNth(z, z') -{ 0 }-> a__snd(a__splitAt(mark(z0), mark(z1))) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__afterNth(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__afterNth(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__and(z, z') -{ 0 }-> mark(z0) :|: z = 2, z0 >= 0, z' = z0 a__and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__and(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__fst(z) -{ 0 }-> mark(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__fst(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__fst(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__head(z) -{ 0 }-> mark(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__head(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__natsFrom(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__natsFrom(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__natsFrom(z) -{ 0 }-> 1 + mark(z0) + (1 + (1 + z0)) :|: z = z0, z0 >= 0 a__sel(z, z') -{ 0 }-> a__head(a__afterNth(mark(z0), mark(z1))) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__sel(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__sel(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__snd(z) -{ 0 }-> mark(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__snd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__snd(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__splitAt(z, z') -{ 0 }-> a__U11(2, z0, z1, z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__splitAt(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__splitAt(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__splitAt(z, z') -{ 0 }-> 1 + 1 + mark(z0) :|: z0 >= 0, z = 0, z' = z0 a__tail(z) -{ 0 }-> mark(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__tail(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__take(z, z') -{ 0 }-> a__fst(a__splitAt(mark(z0), mark(z1))) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__take(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__take(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 mark(z) -{ 0 }-> a__take(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__tail(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__splitAt(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__snd(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__sel(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__natsFrom(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__head(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__fst(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__and(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__afterNth(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U12(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__U11(mark(z0), z1, z2, z3) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> 2 :|: z = 2 mark(z) -{ 0 }-> 1 :|: z = 1 mark(z) -{ 0 }-> 0 :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> 1 + mark(z0) + mark(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (53) 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)) ---------------------------------------- (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__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 ---------------------------------------- (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__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 ---------------------------------------- (57) 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)) ---------------------------------------- (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__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 ---------------------------------------- (59) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (61) 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)) ---------------------------------------- (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__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 ---------------------------------------- (63) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (65) 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)) ---------------------------------------- (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__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 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 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__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 ---------------------------------------- (69) 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)) ---------------------------------------- (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__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 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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__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 ---------------------------------------- (73) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (75) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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)) 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 ---------------------------------------- (77) 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)) ---------------------------------------- (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)) 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 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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)) 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 ---------------------------------------- (81) 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)) ---------------------------------------- (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(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 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 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(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 ---------------------------------------- (85) 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)) ---------------------------------------- (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(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 ---------------------------------------- (87) 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)) ---------------------------------------- (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(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 ---------------------------------------- (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(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 ---------------------------------------- (91) 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)) ---------------------------------------- (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(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 ---------------------------------------- (93) 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)) ---------------------------------------- (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(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 ---------------------------------------- (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(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 ---------------------------------------- (97) 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)) ---------------------------------------- (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(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 ---------------------------------------- (99) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(splitAt(tt, x1)) -> c32(A__SPLITAT(tt, mark(x1)), MARK(tt)) MARK(splitAt(nil, x1)) -> c32(A__SPLITAT(nil, mark(x1)), MARK(nil)) ---------------------------------------- (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(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 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 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(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 ---------------------------------------- (103) 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)) ---------------------------------------- (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(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 ---------------------------------------- (105) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (107) 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)) ---------------------------------------- (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(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 ---------------------------------------- (109) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(snd(0)) -> c36(A__SND(0), MARK(0)) MARK(snd(tt)) -> c36(A__SND(tt), MARK(tt)) MARK(snd(nil)) -> c36(A__SND(nil), MARK(nil)) ---------------------------------------- (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(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 ---------------------------------------- (111) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 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(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 ---------------------------------------- (113) 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)) ---------------------------------------- (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(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 ---------------------------------------- (115) 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)) ---------------------------------------- (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(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 ---------------------------------------- (117) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (119) 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)) ---------------------------------------- (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(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 ---------------------------------------- (121) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(0)) -> c38(A__FST(0), MARK(0)) MARK(fst(nil)) -> c38(A__FST(nil), MARK(nil)) MARK(fst(tt)) -> c38(A__FST(tt), MARK(tt)) ---------------------------------------- (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(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 ---------------------------------------- (123) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 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(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 ---------------------------------------- (125) 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)) ---------------------------------------- (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(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 ---------------------------------------- (127) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(head(nil)) -> c39(A__HEAD(nil), MARK(nil)) MARK(head(0)) -> c39(A__HEAD(0), MARK(0)) MARK(head(tt)) -> c39(A__HEAD(tt), MARK(tt)) ---------------------------------------- (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(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 ---------------------------------------- (129) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (131) 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)) ---------------------------------------- (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, 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 ---------------------------------------- (133) 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)) ---------------------------------------- (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, 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 ---------------------------------------- (135) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 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, 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 ---------------------------------------- (137) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (141) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (145) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (149) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (153) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (157) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (161) 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)))) ---------------------------------------- (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, 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 ---------------------------------------- (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, 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 ---------------------------------------- (165) 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)))) ---------------------------------------- (166) 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 ---------------------------------------- (167) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (168) 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 ---------------------------------------- (169) 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)))) ---------------------------------------- (170) 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 ---------------------------------------- (171) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (172) 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 ---------------------------------------- (173) 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)))) ---------------------------------------- (174) 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 ---------------------------------------- (175) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (176) 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 ---------------------------------------- (177) 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)))) ---------------------------------------- (178) 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 ---------------------------------------- (179) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (180) 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 ---------------------------------------- (181) 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)))) ---------------------------------------- (182) 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 ---------------------------------------- (183) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (184) 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