/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- KILLED proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 609 ms] (4) CpxRelTRS (5) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (6) TRS for Loop Detection (7) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) typed CpxTrs (11) OrderProof [LOWER BOUND(ID), 0 ms] (12) typed CpxTrs (13) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (14) CpxTRS (15) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (16) CpxRelTRS (17) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxWeightedTrs (19) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxTypedWeightedTrs (21) CompletionProof [UPPER BOUND(ID), 0 ms] (22) CpxTypedWeightedCompleteTrs (23) CompletionProof [UPPER BOUND(ID), 0 ms] (24) CpxTypedWeightedCompleteTrs (25) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 34 ms] (26) CpxRNTS (27) CpxTrsToCdtProof [UPPER BOUND(ID), 50 ms] (28) CdtProblem (29) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CdtProblem (31) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 6 ms] (32) CdtProblem (33) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (34) CdtProblem (35) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (36) CdtProblem (37) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 90 ms] (38) CdtProblem (39) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (40) CdtProblem (41) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CdtProblem (43) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (44) CdtProblem (45) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 30 ms] (48) CdtProblem (49) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CdtProblem (51) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 74 ms] (52) CdtProblem (53) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 31 ms] (56) CdtProblem (57) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (60) CdtProblem (61) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 90 ms] (64) CdtProblem (65) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 42 ms] (68) CdtProblem (69) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 10 ms] (70) CdtProblem (71) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 150 ms] (72) CdtProblem (73) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 6 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 596 ms] (76) CdtProblem (77) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 49 ms] (78) CdtProblem (79) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 92 ms] (80) CdtProblem (81) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 14 ms] (82) CdtProblem (83) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 102 ms] (84) CdtProblem (85) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 255 ms] (88) CdtProblem (89) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 7 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 312 ms] (92) CdtProblem (93) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 53 ms] (94) CdtProblem (95) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 338 ms] (96) CdtProblem (97) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 38 ms] (98) CdtProblem (99) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 86 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 95 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 39 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 69 ms] (106) CdtProblem (107) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 14 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 3 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 142 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 83 ms] (114) CdtProblem (115) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 200 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 101 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 97 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 98 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 268 ms] (124) CdtProblem ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0, XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) ---------------------------------------- (2) 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: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0, XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) 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: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0, XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (6) 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: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0, XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (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: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0', XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0') -> active(0') mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) The (relative) TRS S consists of the following rules: encArg(0') -> 0' encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: Innermost TRS: Rules: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0', XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0') -> active(0') mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) encArg(0') -> 0' encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) Types: active :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take natsFrom :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take mark :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take s :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take fst :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take pair :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take snd :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take splitAt :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take 0' :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take nil :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take u :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take head :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take tail :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take sel :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take afterNth :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take take :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encArg :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_active :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_mark :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_natsFrom :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_cons :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_s :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_fst :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_pair :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_snd :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_splitAt :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_u :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_head :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_tail :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_sel :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_afterNth :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_take :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_active :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_natsFrom :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_mark :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_cons :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_s :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_fst :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_pair :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_snd :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_splitAt :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_0 :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_nil :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_u :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_head :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_tail :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_sel :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_afterNth :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_take :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take hole_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take1_5 :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take gen_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take2_5 :: Nat -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take ---------------------------------------- (11) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: active, mark, cons, natsFrom, s, pair, u, splitAt, head, afterNth, fst, snd, tail, sel, take, encArg They will be analysed ascendingly in the following order: active = mark cons < active natsFrom < active s < active pair < active u < active splitAt < active head < active afterNth < active fst < active snd < active active < encArg cons < mark natsFrom < mark s < mark pair < mark u < mark splitAt < mark head < mark afterNth < mark fst < mark snd < mark tail < mark sel < mark take < mark mark < encArg cons < encArg natsFrom < encArg s < encArg pair < encArg u < encArg splitAt < encArg head < encArg afterNth < encArg fst < encArg snd < encArg tail < encArg sel < encArg take < encArg ---------------------------------------- (12) Obligation: Innermost TRS: Rules: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0', XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0') -> active(0') mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) encArg(0') -> 0' encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0' encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) Types: active :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take natsFrom :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take mark :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take s :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take fst :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take pair :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take snd :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take splitAt :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take 0' :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take nil :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take u :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take head :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take tail :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take sel :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take afterNth :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take take :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encArg :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_active :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_mark :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_natsFrom :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_cons :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_s :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_fst :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_pair :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_snd :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_splitAt :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_u :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_head :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_tail :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_sel :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_afterNth :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_take :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_active :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_natsFrom :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_mark :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_cons :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_s :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_fst :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_pair :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_snd :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_splitAt :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_0 :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_nil :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_u :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_head :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_tail :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_sel :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_afterNth :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_take :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take hole_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take1_5 :: 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take gen_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take2_5 :: Nat -> 0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take Generator Equations: gen_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take2_5(0) <=> 0' gen_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take2_5(+(x, 1)) <=> cons_active(gen_0':nil:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take2_5(x)) The following defined symbols remain to be analysed: cons, active, mark, natsFrom, s, pair, u, splitAt, head, afterNth, fst, snd, tail, sel, take, encArg They will be analysed ascendingly in the following order: active = mark cons < active natsFrom < active s < active pair < active u < active splitAt < active head < active afterNth < active fst < active snd < active active < encArg cons < mark natsFrom < mark s < mark pair < mark u < mark splitAt < mark head < mark afterNth < mark fst < mark snd < mark tail < mark sel < mark take < mark mark < encArg cons < encArg natsFrom < encArg s < encArg pair < encArg u < encArg splitAt < encArg head < encArg afterNth < encArg fst < encArg snd < encArg tail < encArg sel < encArg take < encArg ---------------------------------------- (13) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (14) 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: active(natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) active(fst(pair(XS, YS))) -> mark(XS) active(snd(pair(XS, YS))) -> mark(YS) active(splitAt(0, XS)) -> mark(pair(nil, XS)) active(splitAt(s(N), cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) active(u(pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) active(head(cons(N, XS))) -> mark(N) active(tail(cons(N, XS))) -> mark(XS) active(sel(N, XS)) -> mark(head(afterNth(N, XS))) active(take(N, XS)) -> mark(fst(splitAt(N, XS))) active(afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) mark(natsFrom(X)) -> active(natsFrom(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(fst(X)) -> active(fst(mark(X))) mark(pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) mark(snd(X)) -> active(snd(mark(X))) mark(splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) mark(afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) natsFrom(mark(X)) -> natsFrom(X) natsFrom(active(X)) -> natsFrom(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) fst(mark(X)) -> fst(X) fst(active(X)) -> fst(X) pair(mark(X1), X2) -> pair(X1, X2) pair(X1, mark(X2)) -> pair(X1, X2) pair(active(X1), X2) -> pair(X1, X2) pair(X1, active(X2)) -> pair(X1, X2) snd(mark(X)) -> snd(X) snd(active(X)) -> snd(X) splitAt(mark(X1), X2) -> splitAt(X1, X2) splitAt(X1, mark(X2)) -> splitAt(X1, X2) splitAt(active(X1), X2) -> splitAt(X1, X2) splitAt(X1, active(X2)) -> splitAt(X1, X2) u(mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, mark(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, mark(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, mark(X4)) -> u(X1, X2, X3, X4) u(active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) u(X1, active(X2), X3, X4) -> u(X1, X2, X3, X4) u(X1, X2, active(X3), X4) -> u(X1, X2, X3, X4) u(X1, X2, X3, active(X4)) -> u(X1, X2, X3, X4) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) sel(mark(X1), X2) -> sel(X1, X2) sel(X1, mark(X2)) -> sel(X1, X2) sel(active(X1), X2) -> sel(X1, X2) sel(X1, active(X2)) -> sel(X1, X2) afterNth(mark(X1), X2) -> afterNth(X1, X2) afterNth(X1, mark(X2)) -> afterNth(X1, X2) afterNth(active(X1), X2) -> afterNth(X1, X2) afterNth(X1, active(X2)) -> afterNth(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (15) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (16) 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: mark(0) -> active(0) mark(nil) -> active(nil) mark(c_head(X)) -> active(head(mark(X))) natsFrom(c_mark(X)) -> natsFrom(X) mark(c_snd(X)) -> active(snd(mark(X))) snd(c_active(X)) -> snd(X) pair(X1, c_mark(X2)) -> pair(X1, X2) tail(c_mark(X)) -> tail(X) afterNth(c_active(X1), X2) -> afterNth(X1, X2) mark(c_tail(X)) -> active(tail(mark(X))) pair(c_active(X1), X2) -> pair(X1, X2) cons(c_mark(X1), X2) -> cons(X1, X2) sel(c_active(X1), X2) -> sel(X1, X2) u(c_mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) active(c_u(c_pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) mark(c_pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) head(c_active(X)) -> head(X) afterNth(X1, c_active(X2)) -> afterNth(X1, X2) take(c_mark(X1), X2) -> take(X1, X2) splitAt(X1, c_active(X2)) -> splitAt(X1, X2) snd(c_mark(X)) -> snd(X) splitAt(c_mark(X1), X2) -> splitAt(X1, X2) tail(c_active(X)) -> tail(X) pair(c_mark(X1), X2) -> pair(X1, X2) active(c_snd(c_pair(XS, YS))) -> mark(YS) active(c_natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) fst(c_active(X)) -> fst(X) take(c_active(X1), X2) -> take(X1, X2) sel(c_mark(X1), X2) -> sel(X1, X2) u(X1, X2, X3, c_mark(X4)) -> u(X1, X2, X3, X4) natsFrom(c_active(X)) -> natsFrom(X) afterNth(X1, c_mark(X2)) -> afterNth(X1, X2) u(X1, X2, c_active(X3), X4) -> u(X1, X2, X3, X4) active(c_splitAt(c_s(N), c_cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) mark(c_fst(X)) -> active(fst(mark(X))) mark(c_splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) u(X1, X2, X3, c_active(X4)) -> u(X1, X2, X3, X4) sel(X1, c_active(X2)) -> sel(X1, X2) sel(X1, c_mark(X2)) -> sel(X1, X2) active(c_sel(N, XS)) -> mark(head(afterNth(N, XS))) u(X1, X2, c_mark(X3), X4) -> u(X1, X2, X3, X4) pair(X1, c_active(X2)) -> pair(X1, X2) mark(c_u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) fst(c_mark(X)) -> fst(X) active(c_head(c_cons(N, XS))) -> mark(N) take(X1, c_active(X2)) -> take(X1, X2) splitAt(X1, c_mark(X2)) -> splitAt(X1, X2) splitAt(c_active(X1), X2) -> splitAt(X1, X2) active(c_afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) u(c_active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) mark(c_s(X)) -> active(s(mark(X))) mark(c_natsFrom(X)) -> active(natsFrom(mark(X))) active(c_fst(c_pair(XS, YS))) -> mark(XS) s(c_active(X)) -> s(X) u(X1, c_mark(X2), X3, X4) -> u(X1, X2, X3, X4) cons(X1, c_active(X2)) -> cons(X1, X2) mark(c_take(X1, X2)) -> active(take(mark(X1), mark(X2))) cons(X1, c_mark(X2)) -> cons(X1, X2) afterNth(c_mark(X1), X2) -> afterNth(X1, X2) u(X1, c_active(X2), X3, X4) -> u(X1, X2, X3, X4) take(X1, c_mark(X2)) -> take(X1, X2) s(c_mark(X)) -> s(X) active(c_take(N, XS)) -> mark(fst(splitAt(N, XS))) mark(c_sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) active(c_tail(c_cons(N, XS))) -> mark(XS) mark(c_afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) head(c_mark(X)) -> head(X) cons(c_active(X1), X2) -> cons(X1, X2) mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) active(c_splitAt(0, XS)) -> mark(pair(nil, XS)) The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(x_1)) -> active(encArg(x_1)) encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(cons_s(x_1)) -> s(encArg(x_1)) encArg(cons_fst(x_1)) -> fst(encArg(x_1)) encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) encArg(cons_snd(x_1)) -> snd(encArg(x_1)) encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encArg(cons_head(x_1)) -> head(encArg(x_1)) encArg(cons_tail(x_1)) -> tail(encArg(x_1)) encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) encode_active(x_1) -> active(encArg(x_1)) encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) encode_mark(x_1) -> mark(encArg(x_1)) encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_s(x_1) -> s(encArg(x_1)) encode_fst(x_1) -> fst(encArg(x_1)) encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) encode_snd(x_1) -> snd(encArg(x_1)) encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) encode_0 -> 0 encode_nil -> nil encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) encode_head(x_1) -> head(encArg(x_1)) encode_tail(x_1) -> tail(encArg(x_1)) encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) head(x0) -> c_head(x0) afterNth(x0, x1) -> c_afterNth(x0, x1) sel(x0, x1) -> c_sel(x0, x1) u(x0, x1, x2, x3) -> c_u(x0, x1, x2, x3) tail(x0) -> c_tail(x0) s(x0) -> c_s(x0) active(x0) -> c_active(x0) splitAt(x0, x1) -> c_splitAt(x0, x1) fst(x0) -> c_fst(x0) take(x0, x1) -> c_take(x0, x1) snd(x0) -> c_snd(x0) cons(x0, x1) -> c_cons(x0, x1) pair(x0, x1) -> c_pair(x0, x1) natsFrom(x0) -> c_natsFrom(x0) mark(x0) -> c_mark(x0) Rewrite Strategy: INNERMOST ---------------------------------------- (17) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (18) 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: mark(0) -> active(0) [1] mark(nil) -> active(nil) [1] mark(c_head(X)) -> active(head(mark(X))) [1] natsFrom(c_mark(X)) -> natsFrom(X) [1] mark(c_snd(X)) -> active(snd(mark(X))) [1] snd(c_active(X)) -> snd(X) [1] pair(X1, c_mark(X2)) -> pair(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] afterNth(c_active(X1), X2) -> afterNth(X1, X2) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] pair(c_active(X1), X2) -> pair(X1, X2) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] sel(c_active(X1), X2) -> sel(X1, X2) [1] u(c_mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] active(c_u(c_pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) [1] mark(c_pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) [1] head(c_active(X)) -> head(X) [1] afterNth(X1, c_active(X2)) -> afterNth(X1, X2) [1] take(c_mark(X1), X2) -> take(X1, X2) [1] splitAt(X1, c_active(X2)) -> splitAt(X1, X2) [1] snd(c_mark(X)) -> snd(X) [1] splitAt(c_mark(X1), X2) -> splitAt(X1, X2) [1] tail(c_active(X)) -> tail(X) [1] pair(c_mark(X1), X2) -> pair(X1, X2) [1] active(c_snd(c_pair(XS, YS))) -> mark(YS) [1] active(c_natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) [1] fst(c_active(X)) -> fst(X) [1] take(c_active(X1), X2) -> take(X1, X2) [1] sel(c_mark(X1), X2) -> sel(X1, X2) [1] u(X1, X2, X3, c_mark(X4)) -> u(X1, X2, X3, X4) [1] natsFrom(c_active(X)) -> natsFrom(X) [1] afterNth(X1, c_mark(X2)) -> afterNth(X1, X2) [1] u(X1, X2, c_active(X3), X4) -> u(X1, X2, X3, X4) [1] active(c_splitAt(c_s(N), c_cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) [1] mark(c_fst(X)) -> active(fst(mark(X))) [1] mark(c_splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) [1] u(X1, X2, X3, c_active(X4)) -> u(X1, X2, X3, X4) [1] sel(X1, c_active(X2)) -> sel(X1, X2) [1] sel(X1, c_mark(X2)) -> sel(X1, X2) [1] active(c_sel(N, XS)) -> mark(head(afterNth(N, XS))) [1] u(X1, X2, c_mark(X3), X4) -> u(X1, X2, X3, X4) [1] pair(X1, c_active(X2)) -> pair(X1, X2) [1] mark(c_u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) [1] fst(c_mark(X)) -> fst(X) [1] active(c_head(c_cons(N, XS))) -> mark(N) [1] take(X1, c_active(X2)) -> take(X1, X2) [1] splitAt(X1, c_mark(X2)) -> splitAt(X1, X2) [1] splitAt(c_active(X1), X2) -> splitAt(X1, X2) [1] active(c_afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) [1] u(c_active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] mark(c_s(X)) -> active(s(mark(X))) [1] mark(c_natsFrom(X)) -> active(natsFrom(mark(X))) [1] active(c_fst(c_pair(XS, YS))) -> mark(XS) [1] s(c_active(X)) -> s(X) [1] u(X1, c_mark(X2), X3, X4) -> u(X1, X2, X3, X4) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] mark(c_take(X1, X2)) -> active(take(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] afterNth(c_mark(X1), X2) -> afterNth(X1, X2) [1] u(X1, c_active(X2), X3, X4) -> u(X1, X2, X3, X4) [1] take(X1, c_mark(X2)) -> take(X1, X2) [1] s(c_mark(X)) -> s(X) [1] active(c_take(N, XS)) -> mark(fst(splitAt(N, XS))) [1] mark(c_sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) [1] active(c_tail(c_cons(N, XS))) -> mark(XS) [1] mark(c_afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_splitAt(0, XS)) -> mark(pair(nil, XS)) [1] encArg(0) -> 0 [0] encArg(nil) -> nil [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_fst(x_1)) -> fst(encArg(x_1)) [0] encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) [0] encArg(cons_snd(x_1)) -> snd(encArg(x_1)) [0] encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) [0] encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) [0] encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) [0] encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_fst(x_1) -> fst(encArg(x_1)) [0] encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) [0] encode_snd(x_1) -> snd(encArg(x_1)) [0] encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_nil -> nil [0] encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) [0] encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) [0] encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) [0] head(x0) -> c_head(x0) [0] afterNth(x0, x1) -> c_afterNth(x0, x1) [0] sel(x0, x1) -> c_sel(x0, x1) [0] u(x0, x1, x2, x3) -> c_u(x0, x1, x2, x3) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] splitAt(x0, x1) -> c_splitAt(x0, x1) [0] fst(x0) -> c_fst(x0) [0] take(x0, x1) -> c_take(x0, x1) [0] snd(x0) -> c_snd(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] pair(x0, x1) -> c_pair(x0, x1) [0] natsFrom(x0) -> c_natsFrom(x0) [0] mark(x0) -> c_mark(x0) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (19) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (20) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: mark(0) -> active(0) [1] mark(nil) -> active(nil) [1] mark(c_head(X)) -> active(head(mark(X))) [1] natsFrom(c_mark(X)) -> natsFrom(X) [1] mark(c_snd(X)) -> active(snd(mark(X))) [1] snd(c_active(X)) -> snd(X) [1] pair(X1, c_mark(X2)) -> pair(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] afterNth(c_active(X1), X2) -> afterNth(X1, X2) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] pair(c_active(X1), X2) -> pair(X1, X2) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] sel(c_active(X1), X2) -> sel(X1, X2) [1] u(c_mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] active(c_u(c_pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) [1] mark(c_pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) [1] head(c_active(X)) -> head(X) [1] afterNth(X1, c_active(X2)) -> afterNth(X1, X2) [1] take(c_mark(X1), X2) -> take(X1, X2) [1] splitAt(X1, c_active(X2)) -> splitAt(X1, X2) [1] snd(c_mark(X)) -> snd(X) [1] splitAt(c_mark(X1), X2) -> splitAt(X1, X2) [1] tail(c_active(X)) -> tail(X) [1] pair(c_mark(X1), X2) -> pair(X1, X2) [1] active(c_snd(c_pair(XS, YS))) -> mark(YS) [1] active(c_natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) [1] fst(c_active(X)) -> fst(X) [1] take(c_active(X1), X2) -> take(X1, X2) [1] sel(c_mark(X1), X2) -> sel(X1, X2) [1] u(X1, X2, X3, c_mark(X4)) -> u(X1, X2, X3, X4) [1] natsFrom(c_active(X)) -> natsFrom(X) [1] afterNth(X1, c_mark(X2)) -> afterNth(X1, X2) [1] u(X1, X2, c_active(X3), X4) -> u(X1, X2, X3, X4) [1] active(c_splitAt(c_s(N), c_cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) [1] mark(c_fst(X)) -> active(fst(mark(X))) [1] mark(c_splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) [1] u(X1, X2, X3, c_active(X4)) -> u(X1, X2, X3, X4) [1] sel(X1, c_active(X2)) -> sel(X1, X2) [1] sel(X1, c_mark(X2)) -> sel(X1, X2) [1] active(c_sel(N, XS)) -> mark(head(afterNth(N, XS))) [1] u(X1, X2, c_mark(X3), X4) -> u(X1, X2, X3, X4) [1] pair(X1, c_active(X2)) -> pair(X1, X2) [1] mark(c_u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) [1] fst(c_mark(X)) -> fst(X) [1] active(c_head(c_cons(N, XS))) -> mark(N) [1] take(X1, c_active(X2)) -> take(X1, X2) [1] splitAt(X1, c_mark(X2)) -> splitAt(X1, X2) [1] splitAt(c_active(X1), X2) -> splitAt(X1, X2) [1] active(c_afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) [1] u(c_active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] mark(c_s(X)) -> active(s(mark(X))) [1] mark(c_natsFrom(X)) -> active(natsFrom(mark(X))) [1] active(c_fst(c_pair(XS, YS))) -> mark(XS) [1] s(c_active(X)) -> s(X) [1] u(X1, c_mark(X2), X3, X4) -> u(X1, X2, X3, X4) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] mark(c_take(X1, X2)) -> active(take(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] afterNth(c_mark(X1), X2) -> afterNth(X1, X2) [1] u(X1, c_active(X2), X3, X4) -> u(X1, X2, X3, X4) [1] take(X1, c_mark(X2)) -> take(X1, X2) [1] s(c_mark(X)) -> s(X) [1] active(c_take(N, XS)) -> mark(fst(splitAt(N, XS))) [1] mark(c_sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) [1] active(c_tail(c_cons(N, XS))) -> mark(XS) [1] mark(c_afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_splitAt(0, XS)) -> mark(pair(nil, XS)) [1] encArg(0) -> 0 [0] encArg(nil) -> nil [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_fst(x_1)) -> fst(encArg(x_1)) [0] encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) [0] encArg(cons_snd(x_1)) -> snd(encArg(x_1)) [0] encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) [0] encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) [0] encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) [0] encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_fst(x_1) -> fst(encArg(x_1)) [0] encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) [0] encode_snd(x_1) -> snd(encArg(x_1)) [0] encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_nil -> nil [0] encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) [0] encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) [0] encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) [0] head(x0) -> c_head(x0) [0] afterNth(x0, x1) -> c_afterNth(x0, x1) [0] sel(x0, x1) -> c_sel(x0, x1) [0] u(x0, x1, x2, x3) -> c_u(x0, x1, x2, x3) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] splitAt(x0, x1) -> c_splitAt(x0, x1) [0] fst(x0) -> c_fst(x0) [0] take(x0, x1) -> c_take(x0, x1) [0] snd(x0) -> c_snd(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] pair(x0, x1) -> c_pair(x0, x1) [0] natsFrom(x0) -> c_natsFrom(x0) [0] mark(x0) -> c_mark(x0) [0] The TRS has the following type information: mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take 0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take c_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encArg :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take cons_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take encode_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take Rewrite Strategy: INNERMOST ---------------------------------------- (21) 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: encArg_1 encode_active_1 encode_natsFrom_1 encode_mark_1 encode_cons_2 encode_s_1 encode_fst_1 encode_pair_2 encode_snd_1 encode_splitAt_2 encode_0 encode_nil encode_u_4 encode_head_1 encode_tail_1 encode_sel_2 encode_afterNth_2 encode_take_2 head_1 afterNth_2 sel_2 u_4 tail_1 s_1 active_1 splitAt_2 fst_1 take_2 snd_1 cons_2 pair_2 natsFrom_1 mark_1 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_natsFrom(v0) -> null_encode_natsFrom [0] encode_mark(v0) -> null_encode_mark [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_s(v0) -> null_encode_s [0] encode_fst(v0) -> null_encode_fst [0] encode_pair(v0, v1) -> null_encode_pair [0] encode_snd(v0) -> null_encode_snd [0] encode_splitAt(v0, v1) -> null_encode_splitAt [0] encode_0 -> null_encode_0 [0] encode_nil -> null_encode_nil [0] encode_u(v0, v1, v2, v3) -> null_encode_u [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_sel(v0, v1) -> null_encode_sel [0] encode_afterNth(v0, v1) -> null_encode_afterNth [0] encode_take(v0, v1) -> null_encode_take [0] head(v0) -> null_head [0] afterNth(v0, v1) -> null_afterNth [0] sel(v0, v1) -> null_sel [0] u(v0, v1, v2, v3) -> null_u [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] splitAt(v0, v1) -> null_splitAt [0] fst(v0) -> null_fst [0] take(v0, v1) -> null_take [0] snd(v0) -> null_snd [0] cons(v0, v1) -> null_cons [0] pair(v0, v1) -> null_pair [0] natsFrom(v0) -> null_natsFrom [0] mark(v0) -> null_mark [0] And the following fresh constants: null_encArg, null_encode_active, null_encode_natsFrom, null_encode_mark, null_encode_cons, null_encode_s, null_encode_fst, null_encode_pair, null_encode_snd, null_encode_splitAt, null_encode_0, null_encode_nil, null_encode_u, null_encode_head, null_encode_tail, null_encode_sel, null_encode_afterNth, null_encode_take, null_head, null_afterNth, null_sel, null_u, null_tail, null_s, null_active, null_splitAt, null_fst, null_take, null_snd, null_cons, null_pair, null_natsFrom, null_mark ---------------------------------------- (22) 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: mark(0) -> active(0) [1] mark(nil) -> active(nil) [1] mark(c_head(X)) -> active(head(mark(X))) [1] natsFrom(c_mark(X)) -> natsFrom(X) [1] mark(c_snd(X)) -> active(snd(mark(X))) [1] snd(c_active(X)) -> snd(X) [1] pair(X1, c_mark(X2)) -> pair(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] afterNth(c_active(X1), X2) -> afterNth(X1, X2) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] pair(c_active(X1), X2) -> pair(X1, X2) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] sel(c_active(X1), X2) -> sel(X1, X2) [1] u(c_mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] active(c_u(c_pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) [1] mark(c_pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) [1] head(c_active(X)) -> head(X) [1] afterNth(X1, c_active(X2)) -> afterNth(X1, X2) [1] take(c_mark(X1), X2) -> take(X1, X2) [1] splitAt(X1, c_active(X2)) -> splitAt(X1, X2) [1] snd(c_mark(X)) -> snd(X) [1] splitAt(c_mark(X1), X2) -> splitAt(X1, X2) [1] tail(c_active(X)) -> tail(X) [1] pair(c_mark(X1), X2) -> pair(X1, X2) [1] active(c_snd(c_pair(XS, YS))) -> mark(YS) [1] active(c_natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) [1] fst(c_active(X)) -> fst(X) [1] take(c_active(X1), X2) -> take(X1, X2) [1] sel(c_mark(X1), X2) -> sel(X1, X2) [1] u(X1, X2, X3, c_mark(X4)) -> u(X1, X2, X3, X4) [1] natsFrom(c_active(X)) -> natsFrom(X) [1] afterNth(X1, c_mark(X2)) -> afterNth(X1, X2) [1] u(X1, X2, c_active(X3), X4) -> u(X1, X2, X3, X4) [1] active(c_splitAt(c_s(N), c_cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) [1] mark(c_fst(X)) -> active(fst(mark(X))) [1] mark(c_splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) [1] u(X1, X2, X3, c_active(X4)) -> u(X1, X2, X3, X4) [1] sel(X1, c_active(X2)) -> sel(X1, X2) [1] sel(X1, c_mark(X2)) -> sel(X1, X2) [1] active(c_sel(N, XS)) -> mark(head(afterNth(N, XS))) [1] u(X1, X2, c_mark(X3), X4) -> u(X1, X2, X3, X4) [1] pair(X1, c_active(X2)) -> pair(X1, X2) [1] mark(c_u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) [1] fst(c_mark(X)) -> fst(X) [1] active(c_head(c_cons(N, XS))) -> mark(N) [1] take(X1, c_active(X2)) -> take(X1, X2) [1] splitAt(X1, c_mark(X2)) -> splitAt(X1, X2) [1] splitAt(c_active(X1), X2) -> splitAt(X1, X2) [1] active(c_afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) [1] u(c_active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] mark(c_s(X)) -> active(s(mark(X))) [1] mark(c_natsFrom(X)) -> active(natsFrom(mark(X))) [1] active(c_fst(c_pair(XS, YS))) -> mark(XS) [1] s(c_active(X)) -> s(X) [1] u(X1, c_mark(X2), X3, X4) -> u(X1, X2, X3, X4) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] mark(c_take(X1, X2)) -> active(take(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] afterNth(c_mark(X1), X2) -> afterNth(X1, X2) [1] u(X1, c_active(X2), X3, X4) -> u(X1, X2, X3, X4) [1] take(X1, c_mark(X2)) -> take(X1, X2) [1] s(c_mark(X)) -> s(X) [1] active(c_take(N, XS)) -> mark(fst(splitAt(N, XS))) [1] mark(c_sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) [1] active(c_tail(c_cons(N, XS))) -> mark(XS) [1] mark(c_afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_splitAt(0, XS)) -> mark(pair(nil, XS)) [1] encArg(0) -> 0 [0] encArg(nil) -> nil [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_fst(x_1)) -> fst(encArg(x_1)) [0] encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) [0] encArg(cons_snd(x_1)) -> snd(encArg(x_1)) [0] encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) [0] encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) [0] encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) [0] encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_fst(x_1) -> fst(encArg(x_1)) [0] encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) [0] encode_snd(x_1) -> snd(encArg(x_1)) [0] encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_nil -> nil [0] encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) [0] encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) [0] encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) [0] head(x0) -> c_head(x0) [0] afterNth(x0, x1) -> c_afterNth(x0, x1) [0] sel(x0, x1) -> c_sel(x0, x1) [0] u(x0, x1, x2, x3) -> c_u(x0, x1, x2, x3) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] splitAt(x0, x1) -> c_splitAt(x0, x1) [0] fst(x0) -> c_fst(x0) [0] take(x0, x1) -> c_take(x0, x1) [0] snd(x0) -> c_snd(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] pair(x0, x1) -> c_pair(x0, x1) [0] natsFrom(x0) -> c_natsFrom(x0) [0] mark(x0) -> c_mark(x0) [0] encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_natsFrom(v0) -> null_encode_natsFrom [0] encode_mark(v0) -> null_encode_mark [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_s(v0) -> null_encode_s [0] encode_fst(v0) -> null_encode_fst [0] encode_pair(v0, v1) -> null_encode_pair [0] encode_snd(v0) -> null_encode_snd [0] encode_splitAt(v0, v1) -> null_encode_splitAt [0] encode_0 -> null_encode_0 [0] encode_nil -> null_encode_nil [0] encode_u(v0, v1, v2, v3) -> null_encode_u [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_sel(v0, v1) -> null_encode_sel [0] encode_afterNth(v0, v1) -> null_encode_afterNth [0] encode_take(v0, v1) -> null_encode_take [0] head(v0) -> null_head [0] afterNth(v0, v1) -> null_afterNth [0] sel(v0, v1) -> null_sel [0] u(v0, v1, v2, v3) -> null_u [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] splitAt(v0, v1) -> null_splitAt [0] fst(v0) -> null_fst [0] take(v0, v1) -> null_take [0] snd(v0) -> null_snd [0] cons(v0, v1) -> null_cons [0] pair(v0, v1) -> null_pair [0] natsFrom(v0) -> null_natsFrom [0] mark(v0) -> null_mark [0] The TRS has the following type information: mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark 0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encArg :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encArg :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark Rewrite Strategy: INNERMOST ---------------------------------------- (23) 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: encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_natsFrom(v0) -> null_encode_natsFrom [0] encode_mark(v0) -> null_encode_mark [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_s(v0) -> null_encode_s [0] encode_fst(v0) -> null_encode_fst [0] encode_pair(v0, v1) -> null_encode_pair [0] encode_snd(v0) -> null_encode_snd [0] encode_splitAt(v0, v1) -> null_encode_splitAt [0] encode_0 -> null_encode_0 [0] encode_nil -> null_encode_nil [0] encode_u(v0, v1, v2, v3) -> null_encode_u [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_sel(v0, v1) -> null_encode_sel [0] encode_afterNth(v0, v1) -> null_encode_afterNth [0] encode_take(v0, v1) -> null_encode_take [0] head(v0) -> null_head [0] afterNth(v0, v1) -> null_afterNth [0] sel(v0, v1) -> null_sel [0] u(v0, v1, v2, v3) -> null_u [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] splitAt(v0, v1) -> null_splitAt [0] fst(v0) -> null_fst [0] take(v0, v1) -> null_take [0] snd(v0) -> null_snd [0] cons(v0, v1) -> null_cons [0] pair(v0, v1) -> null_pair [0] natsFrom(v0) -> null_natsFrom [0] mark(v0) -> null_mark [0] And the following fresh constants: null_encArg, null_encode_active, null_encode_natsFrom, null_encode_mark, null_encode_cons, null_encode_s, null_encode_fst, null_encode_pair, null_encode_snd, null_encode_splitAt, null_encode_0, null_encode_nil, null_encode_u, null_encode_head, null_encode_tail, null_encode_sel, null_encode_afterNth, null_encode_take, null_head, null_afterNth, null_sel, null_u, null_tail, null_s, null_active, null_splitAt, null_fst, null_take, null_snd, null_cons, null_pair, null_natsFrom, null_mark ---------------------------------------- (24) 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: mark(0) -> active(0) [1] mark(nil) -> active(nil) [1] mark(c_head(X)) -> active(head(mark(X))) [1] natsFrom(c_mark(X)) -> natsFrom(X) [1] mark(c_snd(X)) -> active(snd(mark(X))) [1] snd(c_active(X)) -> snd(X) [1] pair(X1, c_mark(X2)) -> pair(X1, X2) [1] tail(c_mark(X)) -> tail(X) [1] afterNth(c_active(X1), X2) -> afterNth(X1, X2) [1] mark(c_tail(X)) -> active(tail(mark(X))) [1] pair(c_active(X1), X2) -> pair(X1, X2) [1] cons(c_mark(X1), X2) -> cons(X1, X2) [1] sel(c_active(X1), X2) -> sel(X1, X2) [1] u(c_mark(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] active(c_u(c_pair(YS, ZS), N, X, XS)) -> mark(pair(cons(X, YS), ZS)) [1] mark(c_pair(X1, X2)) -> active(pair(mark(X1), mark(X2))) [1] head(c_active(X)) -> head(X) [1] afterNth(X1, c_active(X2)) -> afterNth(X1, X2) [1] take(c_mark(X1), X2) -> take(X1, X2) [1] splitAt(X1, c_active(X2)) -> splitAt(X1, X2) [1] snd(c_mark(X)) -> snd(X) [1] splitAt(c_mark(X1), X2) -> splitAt(X1, X2) [1] tail(c_active(X)) -> tail(X) [1] pair(c_mark(X1), X2) -> pair(X1, X2) [1] active(c_snd(c_pair(XS, YS))) -> mark(YS) [1] active(c_natsFrom(N)) -> mark(cons(N, natsFrom(s(N)))) [1] fst(c_active(X)) -> fst(X) [1] take(c_active(X1), X2) -> take(X1, X2) [1] sel(c_mark(X1), X2) -> sel(X1, X2) [1] u(X1, X2, X3, c_mark(X4)) -> u(X1, X2, X3, X4) [1] natsFrom(c_active(X)) -> natsFrom(X) [1] afterNth(X1, c_mark(X2)) -> afterNth(X1, X2) [1] u(X1, X2, c_active(X3), X4) -> u(X1, X2, X3, X4) [1] active(c_splitAt(c_s(N), c_cons(X, XS))) -> mark(u(splitAt(N, XS), N, X, XS)) [1] mark(c_fst(X)) -> active(fst(mark(X))) [1] mark(c_splitAt(X1, X2)) -> active(splitAt(mark(X1), mark(X2))) [1] u(X1, X2, X3, c_active(X4)) -> u(X1, X2, X3, X4) [1] sel(X1, c_active(X2)) -> sel(X1, X2) [1] sel(X1, c_mark(X2)) -> sel(X1, X2) [1] active(c_sel(N, XS)) -> mark(head(afterNth(N, XS))) [1] u(X1, X2, c_mark(X3), X4) -> u(X1, X2, X3, X4) [1] pair(X1, c_active(X2)) -> pair(X1, X2) [1] mark(c_u(X1, X2, X3, X4)) -> active(u(mark(X1), X2, X3, X4)) [1] fst(c_mark(X)) -> fst(X) [1] active(c_head(c_cons(N, XS))) -> mark(N) [1] take(X1, c_active(X2)) -> take(X1, X2) [1] splitAt(X1, c_mark(X2)) -> splitAt(X1, X2) [1] splitAt(c_active(X1), X2) -> splitAt(X1, X2) [1] active(c_afterNth(N, XS)) -> mark(snd(splitAt(N, XS))) [1] u(c_active(X1), X2, X3, X4) -> u(X1, X2, X3, X4) [1] mark(c_s(X)) -> active(s(mark(X))) [1] mark(c_natsFrom(X)) -> active(natsFrom(mark(X))) [1] active(c_fst(c_pair(XS, YS))) -> mark(XS) [1] s(c_active(X)) -> s(X) [1] u(X1, c_mark(X2), X3, X4) -> u(X1, X2, X3, X4) [1] cons(X1, c_active(X2)) -> cons(X1, X2) [1] mark(c_take(X1, X2)) -> active(take(mark(X1), mark(X2))) [1] cons(X1, c_mark(X2)) -> cons(X1, X2) [1] afterNth(c_mark(X1), X2) -> afterNth(X1, X2) [1] u(X1, c_active(X2), X3, X4) -> u(X1, X2, X3, X4) [1] take(X1, c_mark(X2)) -> take(X1, X2) [1] s(c_mark(X)) -> s(X) [1] active(c_take(N, XS)) -> mark(fst(splitAt(N, XS))) [1] mark(c_sel(X1, X2)) -> active(sel(mark(X1), mark(X2))) [1] active(c_tail(c_cons(N, XS))) -> mark(XS) [1] mark(c_afterNth(X1, X2)) -> active(afterNth(mark(X1), mark(X2))) [1] head(c_mark(X)) -> head(X) [1] cons(c_active(X1), X2) -> cons(X1, X2) [1] mark(c_cons(X1, X2)) -> active(cons(mark(X1), X2)) [1] active(c_splitAt(0, XS)) -> mark(pair(nil, XS)) [1] encArg(0) -> 0 [0] encArg(nil) -> nil [0] encArg(cons_active(x_1)) -> active(encArg(x_1)) [0] encArg(cons_mark(x_1)) -> mark(encArg(x_1)) [0] encArg(cons_natsFrom(x_1)) -> natsFrom(encArg(x_1)) [0] encArg(cons_cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(cons_s(x_1)) -> s(encArg(x_1)) [0] encArg(cons_fst(x_1)) -> fst(encArg(x_1)) [0] encArg(cons_pair(x_1, x_2)) -> pair(encArg(x_1), encArg(x_2)) [0] encArg(cons_snd(x_1)) -> snd(encArg(x_1)) [0] encArg(cons_splitAt(x_1, x_2)) -> splitAt(encArg(x_1), encArg(x_2)) [0] encArg(cons_u(x_1, x_2, x_3, x_4)) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encArg(cons_head(x_1)) -> head(encArg(x_1)) [0] encArg(cons_tail(x_1)) -> tail(encArg(x_1)) [0] encArg(cons_sel(x_1, x_2)) -> sel(encArg(x_1), encArg(x_2)) [0] encArg(cons_afterNth(x_1, x_2)) -> afterNth(encArg(x_1), encArg(x_2)) [0] encArg(cons_take(x_1, x_2)) -> take(encArg(x_1), encArg(x_2)) [0] encode_active(x_1) -> active(encArg(x_1)) [0] encode_natsFrom(x_1) -> natsFrom(encArg(x_1)) [0] encode_mark(x_1) -> mark(encArg(x_1)) [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_s(x_1) -> s(encArg(x_1)) [0] encode_fst(x_1) -> fst(encArg(x_1)) [0] encode_pair(x_1, x_2) -> pair(encArg(x_1), encArg(x_2)) [0] encode_snd(x_1) -> snd(encArg(x_1)) [0] encode_splitAt(x_1, x_2) -> splitAt(encArg(x_1), encArg(x_2)) [0] encode_0 -> 0 [0] encode_nil -> nil [0] encode_u(x_1, x_2, x_3, x_4) -> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) [0] encode_head(x_1) -> head(encArg(x_1)) [0] encode_tail(x_1) -> tail(encArg(x_1)) [0] encode_sel(x_1, x_2) -> sel(encArg(x_1), encArg(x_2)) [0] encode_afterNth(x_1, x_2) -> afterNth(encArg(x_1), encArg(x_2)) [0] encode_take(x_1, x_2) -> take(encArg(x_1), encArg(x_2)) [0] head(x0) -> c_head(x0) [0] afterNth(x0, x1) -> c_afterNth(x0, x1) [0] sel(x0, x1) -> c_sel(x0, x1) [0] u(x0, x1, x2, x3) -> c_u(x0, x1, x2, x3) [0] tail(x0) -> c_tail(x0) [0] s(x0) -> c_s(x0) [0] active(x0) -> c_active(x0) [0] splitAt(x0, x1) -> c_splitAt(x0, x1) [0] fst(x0) -> c_fst(x0) [0] take(x0, x1) -> c_take(x0, x1) [0] snd(x0) -> c_snd(x0) [0] cons(x0, x1) -> c_cons(x0, x1) [0] pair(x0, x1) -> c_pair(x0, x1) [0] natsFrom(x0) -> c_natsFrom(x0) [0] mark(x0) -> c_mark(x0) [0] encArg(v0) -> null_encArg [0] encode_active(v0) -> null_encode_active [0] encode_natsFrom(v0) -> null_encode_natsFrom [0] encode_mark(v0) -> null_encode_mark [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_s(v0) -> null_encode_s [0] encode_fst(v0) -> null_encode_fst [0] encode_pair(v0, v1) -> null_encode_pair [0] encode_snd(v0) -> null_encode_snd [0] encode_splitAt(v0, v1) -> null_encode_splitAt [0] encode_0 -> null_encode_0 [0] encode_nil -> null_encode_nil [0] encode_u(v0, v1, v2, v3) -> null_encode_u [0] encode_head(v0) -> null_encode_head [0] encode_tail(v0) -> null_encode_tail [0] encode_sel(v0, v1) -> null_encode_sel [0] encode_afterNth(v0, v1) -> null_encode_afterNth [0] encode_take(v0, v1) -> null_encode_take [0] head(v0) -> null_head [0] afterNth(v0, v1) -> null_afterNth [0] sel(v0, v1) -> null_sel [0] u(v0, v1, v2, v3) -> null_u [0] tail(v0) -> null_tail [0] s(v0) -> null_s [0] active(v0) -> null_active [0] splitAt(v0, v1) -> null_splitAt [0] fst(v0) -> null_fst [0] take(v0, v1) -> null_take [0] snd(v0) -> null_snd [0] cons(v0, v1) -> null_cons [0] pair(v0, v1) -> null_pair [0] natsFrom(v0) -> null_natsFrom [0] mark(v0) -> null_mark [0] The TRS has the following type information: mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark 0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark c_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encArg :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark cons_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark encode_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark -> 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encArg :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_0 :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_nil :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_encode_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_head :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_afterNth :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_sel :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_u :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_tail :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_s :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_active :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_splitAt :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_fst :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_take :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_snd :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_cons :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_pair :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_natsFrom :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark null_mark :: 0:nil:c_head:c_mark:c_snd:c_active:c_tail:c_pair:c_u:c_natsFrom:c_s:c_cons:c_splitAt:c_fst:c_sel:c_afterNth:c_take:cons_active:cons_mark:cons_natsFrom:cons_cons:cons_s:cons_fst:cons_pair:cons_snd:cons_splitAt:cons_u:cons_head:cons_tail:cons_sel:cons_afterNth:cons_take:null_encArg:null_encode_active:null_encode_natsFrom:null_encode_mark:null_encode_cons:null_encode_s:null_encode_fst:null_encode_pair:null_encode_snd:null_encode_splitAt:null_encode_0:null_encode_nil:null_encode_u:null_encode_head:null_encode_tail:null_encode_sel:null_encode_afterNth:null_encode_take:null_head:null_afterNth:null_sel:null_u:null_tail:null_s:null_active:null_splitAt:null_fst:null_take:null_snd:null_cons:null_pair:null_natsFrom:null_mark Rewrite Strategy: INNERMOST ---------------------------------------- (25) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 nil => 1 null_encArg => 0 null_encode_active => 0 null_encode_natsFrom => 0 null_encode_mark => 0 null_encode_cons => 0 null_encode_s => 0 null_encode_fst => 0 null_encode_pair => 0 null_encode_snd => 0 null_encode_splitAt => 0 null_encode_0 => 0 null_encode_nil => 0 null_encode_u => 0 null_encode_head => 0 null_encode_tail => 0 null_encode_sel => 0 null_encode_afterNth => 0 null_encode_take => 0 null_head => 0 null_afterNth => 0 null_sel => 0 null_u => 0 null_tail => 0 null_s => 0 null_active => 0 null_splitAt => 0 null_fst => 0 null_take => 0 null_snd => 0 null_cons => 0 null_pair => 0 null_natsFrom => 0 null_mark => 0 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: active(z) -{ 1 }-> mark(N) :|: z = 1 + (1 + N + XS), XS >= 0, N >= 0 active(z) -{ 1 }-> mark(XS) :|: YS >= 0, z = 1 + (1 + XS + YS), XS >= 0 active(z) -{ 1 }-> mark(XS) :|: z = 1 + (1 + N + XS), XS >= 0, N >= 0 active(z) -{ 1 }-> mark(YS) :|: YS >= 0, z = 1 + (1 + XS + YS), XS >= 0 active(z) -{ 1 }-> mark(u(splitAt(N, XS), N, X, XS)) :|: X >= 0, z = 1 + (1 + N) + (1 + X + XS), XS >= 0, N >= 0 active(z) -{ 1 }-> mark(snd(splitAt(N, XS))) :|: z = 1 + N + XS, XS >= 0, N >= 0 active(z) -{ 1 }-> mark(pair(cons(X, YS), ZS)) :|: YS >= 0, X >= 0, z = 1 + (1 + YS + ZS) + N + X + XS, ZS >= 0, XS >= 0, N >= 0 active(z) -{ 1 }-> mark(pair(1, XS)) :|: z = 1 + 0 + XS, XS >= 0 active(z) -{ 1 }-> mark(head(afterNth(N, XS))) :|: z = 1 + N + XS, XS >= 0, N >= 0 active(z) -{ 1 }-> mark(fst(splitAt(N, XS))) :|: z = 1 + N + XS, XS >= 0, N >= 0 active(z) -{ 1 }-> mark(cons(N, natsFrom(s(N)))) :|: z = 1 + N, N >= 0 active(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 active(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 afterNth(z, z') -{ 1 }-> afterNth(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 afterNth(z, z') -{ 1 }-> afterNth(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 afterNth(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 afterNth(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 cons(z, z') -{ 1 }-> cons(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 cons(z, z') -{ 1 }-> cons(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 cons(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 encArg(z) -{ 0 }-> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = 1 + x_1 + x_2 + x_3 + x_4, x_4 >= 0 encArg(z) -{ 0 }-> take(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> tail(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> splitAt(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> snd(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> sel(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> s(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> pair(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> natsFrom(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> mark(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> head(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> fst(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> afterNth(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> active(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_0 -{ 0 }-> 0 :|: encode_active(z) -{ 0 }-> active(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_active(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_afterNth(z, z') -{ 0 }-> afterNth(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_afterNth(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_cons(z, z') -{ 0 }-> cons(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_fst(z) -{ 0 }-> fst(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_fst(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_head(z) -{ 0 }-> head(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_mark(z) -{ 0 }-> mark(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_natsFrom(z) -{ 0 }-> natsFrom(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_natsFrom(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_pair(z, z') -{ 0 }-> pair(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_pair(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_s(z) -{ 0 }-> s(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_sel(z, z') -{ 0 }-> sel(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_sel(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_snd(z) -{ 0 }-> snd(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_snd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_splitAt(z, z') -{ 0 }-> splitAt(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_splitAt(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_tail(z) -{ 0 }-> tail(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_take(z, z') -{ 0 }-> take(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_take(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_u(z, z', z'', z1) -{ 0 }-> u(encArg(x_1), encArg(x_2), encArg(x_3), encArg(x_4)) :|: x_1 >= 0, z1 = x_4, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3, x_4 >= 0 encode_u(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 fst(z) -{ 1 }-> fst(X) :|: z = 1 + X, X >= 0 fst(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 fst(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 head(z) -{ 1 }-> head(X) :|: z = 1 + X, X >= 0 head(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 head(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 mark(z) -{ 1 }-> active(u(mark(X1), X2, X3, X4)) :|: X1 >= 0, z = 1 + X1 + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> active(take(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(tail(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(splitAt(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(snd(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(sel(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(s(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(pair(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(natsFrom(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(head(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(fst(mark(X))) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> active(cons(mark(X1), X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(afterNth(mark(X1), mark(X2))) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> active(1) :|: z = 1 mark(z) -{ 1 }-> active(0) :|: z = 0 mark(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 mark(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 natsFrom(z) -{ 1 }-> natsFrom(X) :|: z = 1 + X, X >= 0 natsFrom(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 natsFrom(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 pair(z, z') -{ 1 }-> pair(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 pair(z, z') -{ 1 }-> pair(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 pair(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 pair(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 s(z) -{ 1 }-> s(X) :|: z = 1 + X, X >= 0 s(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 s(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 sel(z, z') -{ 1 }-> sel(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 sel(z, z') -{ 1 }-> sel(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 sel(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 sel(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 snd(z) -{ 1 }-> snd(X) :|: z = 1 + X, X >= 0 snd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 snd(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 splitAt(z, z') -{ 1 }-> splitAt(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 splitAt(z, z') -{ 1 }-> splitAt(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 splitAt(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 splitAt(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 tail(z) -{ 1 }-> tail(X) :|: z = 1 + X, X >= 0 tail(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 tail(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 take(z, z') -{ 1 }-> take(X1, X2) :|: X1 >= 0, z = 1 + X1, X2 >= 0, z' = X2 take(z, z') -{ 1 }-> take(X1, X2) :|: X1 >= 0, z' = 1 + X2, X2 >= 0, z = X1 take(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 take(z, z') -{ 0 }-> 1 + x0 + x1 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1 u(z, z', z'', z1) -{ 1 }-> u(X1, X2, X3, X4) :|: X1 >= 0, z1 = X4, z = 1 + X1, X3 >= 0, X2 >= 0, X4 >= 0, z' = X2, z'' = X3 u(z, z', z'', z1) -{ 1 }-> u(X1, X2, X3, X4) :|: z1 = 1 + X4, X1 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 u(z, z', z'', z1) -{ 1 }-> u(X1, X2, X3, X4) :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = 1 + X3 u(z, z', z'', z1) -{ 1 }-> u(X1, X2, X3, X4) :|: X1 >= 0, z1 = X4, X3 >= 0, z' = 1 + X2, X2 >= 0, X4 >= 0, z = X1, z'' = X3 u(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 u(z, z', z'', z1) -{ 0 }-> 1 + x0 + x1 + x2 + x3 :|: z = x0, x0 >= 0, x1 >= 0, z' = x1, z1 = x3, z'' = x2, x2 >= 0, x3 >= 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (27) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (28) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_natsFrom(z0) -> natsFrom(encArg(z0)) encode_mark(z0) -> mark(encArg(z0)) encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_s(z0) -> s(encArg(z0)) encode_fst(z0) -> fst(encArg(z0)) encode_pair(z0, z1) -> pair(encArg(z0), encArg(z1)) encode_snd(z0) -> snd(encArg(z0)) encode_splitAt(z0, z1) -> splitAt(encArg(z0), encArg(z1)) encode_0 -> 0 encode_nil -> nil encode_u(z0, z1, z2, z3) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_sel(z0, z1) -> sel(encArg(z0), encArg(z1)) encode_afterNth(z0, z1) -> afterNth(encArg(z0), encArg(z1)) encode_take(z0, z1) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(0) -> c ENCARG(nil) -> c1 ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_ACTIVE(z0) -> c17(ACTIVE(encArg(z0)), ENCARG(z0)) ENCODE_NATSFROM(z0) -> c18(NATSFROM(encArg(z0)), ENCARG(z0)) ENCODE_MARK(z0) -> c19(MARK(encArg(z0)), ENCARG(z0)) ENCODE_CONS(z0, z1) -> c20(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_S(z0) -> c21(S(encArg(z0)), ENCARG(z0)) ENCODE_FST(z0) -> c22(FST(encArg(z0)), ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c23(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_SND(z0) -> c24(SND(encArg(z0)), ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c25(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_0 -> c26 ENCODE_NIL -> c27 ENCODE_U(z0, z1, z2, z3) -> c28(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCODE_HEAD(z0) -> c29(HEAD(encArg(z0)), ENCARG(z0)) ENCODE_TAIL(z0) -> c30(TAIL(encArg(z0)), ENCARG(z0)) ENCODE_SEL(z0, z1) -> c31(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_AFTERNTH(z0, z1) -> c32(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_TAKE(z0, z1) -> c33(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), FST(splitAt(z0, z1)), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SND(splitAt(z0, z1)), SPLITAT(z0, z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(0) -> c52(ACTIVE(0)) MARK(nil) -> c53(ACTIVE(nil)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) S tuples: ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), FST(splitAt(z0, z1)), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SND(splitAt(z0, z1)), SPLITAT(z0, z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(0) -> c52(ACTIVE(0)) MARK(nil) -> c53(ACTIVE(nil)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) K tuples:none Defined Rule Symbols: active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2, encArg_1, encode_active_1, encode_natsFrom_1, encode_mark_1, encode_cons_2, encode_s_1, encode_fst_1, encode_pair_2, encode_snd_1, encode_splitAt_2, encode_0, encode_nil, encode_u_4, encode_head_1, encode_tail_1, encode_sel_2, encode_afterNth_2, encode_take_2 Defined Pair Symbols: ENCARG_1, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_0, ENCODE_NIL, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2 Compound Symbols: c, c1, c2_2, c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c17_2, c18_2, c19_2, c20_3, c21_2, c22_2, c23_3, c24_2, c25_3, c26, c27, c28_5, c29_2, c30_2, c31_3, c32_3, c33_3, c34_4, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c42_3, c43_3, c44_3, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c52_1, c53_1, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1 ---------------------------------------- (29) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCODE_0 -> c26 ENCARG(0) -> c ENCODE_NIL -> c27 ENCARG(nil) -> c1 ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_natsFrom(z0) -> natsFrom(encArg(z0)) encode_mark(z0) -> mark(encArg(z0)) encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_s(z0) -> s(encArg(z0)) encode_fst(z0) -> fst(encArg(z0)) encode_pair(z0, z1) -> pair(encArg(z0), encArg(z1)) encode_snd(z0) -> snd(encArg(z0)) encode_splitAt(z0, z1) -> splitAt(encArg(z0), encArg(z1)) encode_0 -> 0 encode_nil -> nil encode_u(z0, z1, z2, z3) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_sel(z0, z1) -> sel(encArg(z0), encArg(z1)) encode_afterNth(z0, z1) -> afterNth(encArg(z0), encArg(z1)) encode_take(z0, z1) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_ACTIVE(z0) -> c17(ACTIVE(encArg(z0)), ENCARG(z0)) ENCODE_NATSFROM(z0) -> c18(NATSFROM(encArg(z0)), ENCARG(z0)) ENCODE_MARK(z0) -> c19(MARK(encArg(z0)), ENCARG(z0)) ENCODE_CONS(z0, z1) -> c20(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_S(z0) -> c21(S(encArg(z0)), ENCARG(z0)) ENCODE_FST(z0) -> c22(FST(encArg(z0)), ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c23(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_SND(z0) -> c24(SND(encArg(z0)), ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c25(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_U(z0, z1, z2, z3) -> c28(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCODE_HEAD(z0) -> c29(HEAD(encArg(z0)), ENCARG(z0)) ENCODE_TAIL(z0) -> c30(TAIL(encArg(z0)), ENCARG(z0)) ENCODE_SEL(z0, z1) -> c31(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_AFTERNTH(z0, z1) -> c32(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_TAKE(z0, z1) -> c33(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), FST(splitAt(z0, z1)), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SND(splitAt(z0, z1)), SPLITAT(z0, z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(0) -> c52(ACTIVE(0)) MARK(nil) -> c53(ACTIVE(nil)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) S tuples: ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), FST(splitAt(z0, z1)), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SND(splitAt(z0, z1)), SPLITAT(z0, z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(0) -> c52(ACTIVE(0)) MARK(nil) -> c53(ACTIVE(nil)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) K tuples:none Defined Rule Symbols: active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2, encArg_1, encode_active_1, encode_natsFrom_1, encode_mark_1, encode_cons_2, encode_s_1, encode_fst_1, encode_pair_2, encode_snd_1, encode_splitAt_2, encode_0, encode_nil, encode_u_4, encode_head_1, encode_tail_1, encode_sel_2, encode_afterNth_2, encode_take_2 Defined Pair Symbols: ENCARG_1, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2 Compound Symbols: c2_2, c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c17_2, c18_2, c19_2, c20_3, c21_2, c22_2, c23_3, c24_2, c25_3, c28_5, c29_2, c30_2, c31_3, c32_3, c33_3, c34_4, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c42_3, c43_3, c44_3, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c52_1, c53_1, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1 ---------------------------------------- (31) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_natsFrom(z0) -> natsFrom(encArg(z0)) encode_mark(z0) -> mark(encArg(z0)) encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_s(z0) -> s(encArg(z0)) encode_fst(z0) -> fst(encArg(z0)) encode_pair(z0, z1) -> pair(encArg(z0), encArg(z1)) encode_snd(z0) -> snd(encArg(z0)) encode_splitAt(z0, z1) -> splitAt(encArg(z0), encArg(z1)) encode_0 -> 0 encode_nil -> nil encode_u(z0, z1, z2, z3) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_sel(z0, z1) -> sel(encArg(z0), encArg(z1)) encode_afterNth(z0, z1) -> afterNth(encArg(z0), encArg(z1)) encode_take(z0, z1) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_ACTIVE(z0) -> c17(ACTIVE(encArg(z0)), ENCARG(z0)) ENCODE_NATSFROM(z0) -> c18(NATSFROM(encArg(z0)), ENCARG(z0)) ENCODE_MARK(z0) -> c19(MARK(encArg(z0)), ENCARG(z0)) ENCODE_CONS(z0, z1) -> c20(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_S(z0) -> c21(S(encArg(z0)), ENCARG(z0)) ENCODE_FST(z0) -> c22(FST(encArg(z0)), ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c23(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_SND(z0) -> c24(SND(encArg(z0)), ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c25(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_U(z0, z1, z2, z3) -> c28(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCODE_HEAD(z0) -> c29(HEAD(encArg(z0)), ENCARG(z0)) ENCODE_TAIL(z0) -> c30(TAIL(encArg(z0)), ENCARG(z0)) ENCODE_SEL(z0, z1) -> c31(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_AFTERNTH(z0, z1) -> c32(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_TAKE(z0, z1) -> c33(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2, encArg_1, encode_active_1, encode_natsFrom_1, encode_mark_1, encode_cons_2, encode_s_1, encode_fst_1, encode_pair_2, encode_snd_1, encode_splitAt_2, encode_0, encode_nil, encode_u_4, encode_head_1, encode_tail_1, encode_sel_2, encode_afterNth_2, encode_take_2 Defined Pair Symbols: ENCARG_1, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2 Compound Symbols: c2_2, c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c17_2, c18_2, c19_2, c20_3, c21_2, c22_2, c23_3, c24_2, c25_3, c28_5, c29_2, c30_2, c31_3, c32_3, c33_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53 ---------------------------------------- (33) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_natsFrom(z0) -> natsFrom(encArg(z0)) encode_mark(z0) -> mark(encArg(z0)) encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_s(z0) -> s(encArg(z0)) encode_fst(z0) -> fst(encArg(z0)) encode_pair(z0, z1) -> pair(encArg(z0), encArg(z1)) encode_snd(z0) -> snd(encArg(z0)) encode_splitAt(z0, z1) -> splitAt(encArg(z0), encArg(z1)) encode_0 -> 0 encode_nil -> nil encode_u(z0, z1, z2, z3) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_sel(z0, z1) -> sel(encArg(z0), encArg(z1)) encode_afterNth(z0, z1) -> afterNth(encArg(z0), encArg(z1)) encode_take(z0, z1) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_ACTIVE(z0) -> c(ENCARG(z0)) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_NATSFROM(z0) -> c(ENCARG(z0)) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_MARK(z0) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_CONS(z0, z1) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(ENCARG(z1)) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_S(z0) -> c(ENCARG(z0)) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_FST(z0) -> c(ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_PAIR(z0, z1) -> c(ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c(ENCARG(z1)) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SND(z0) -> c(ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_SPLITAT(z0, z1) -> c(ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c(ENCARG(z1)) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z0)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z1)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z2)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z3)) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_HEAD(z0) -> c(ENCARG(z0)) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_TAIL(z0) -> c(ENCARG(z0)) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_SEL(z0, z1) -> c(ENCARG(z0)) ENCODE_SEL(z0, z1) -> c(ENCARG(z1)) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(ENCARG(z0)) ENCODE_AFTERNTH(z0, z1) -> c(ENCARG(z1)) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(ENCARG(z0)) ENCODE_TAKE(z0, z1) -> c(ENCARG(z1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2, encArg_1, encode_active_1, encode_natsFrom_1, encode_mark_1, encode_cons_2, encode_s_1, encode_fst_1, encode_pair_2, encode_snd_1, encode_splitAt_2, encode_0, encode_nil, encode_u_4, encode_head_1, encode_tail_1, encode_sel_2, encode_afterNth_2, encode_take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c2_2, c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1 ---------------------------------------- (35) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 24 leading nodes: ENCODE_ACTIVE(z0) -> c(ENCARG(z0)) ENCODE_NATSFROM(z0) -> c(ENCARG(z0)) ENCODE_MARK(z0) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(ENCARG(z0)) ENCODE_CONS(z0, z1) -> c(ENCARG(z1)) ENCODE_S(z0) -> c(ENCARG(z0)) ENCODE_FST(z0) -> c(ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c(ENCARG(z0)) ENCODE_PAIR(z0, z1) -> c(ENCARG(z1)) ENCODE_SND(z0) -> c(ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c(ENCARG(z0)) ENCODE_SPLITAT(z0, z1) -> c(ENCARG(z1)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z0)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z1)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z2)) ENCODE_U(z0, z1, z2, z3) -> c(ENCARG(z3)) ENCODE_HEAD(z0) -> c(ENCARG(z0)) ENCODE_TAIL(z0) -> c(ENCARG(z0)) ENCODE_SEL(z0, z1) -> c(ENCARG(z0)) ENCODE_SEL(z0, z1) -> c(ENCARG(z1)) ENCODE_AFTERNTH(z0, z1) -> c(ENCARG(z0)) ENCODE_AFTERNTH(z0, z1) -> c(ENCARG(z1)) ENCODE_TAKE(z0, z1) -> c(ENCARG(z0)) ENCODE_TAKE(z0, z1) -> c(ENCARG(z1)) ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) encode_active(z0) -> active(encArg(z0)) encode_natsFrom(z0) -> natsFrom(encArg(z0)) encode_mark(z0) -> mark(encArg(z0)) encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_s(z0) -> s(encArg(z0)) encode_fst(z0) -> fst(encArg(z0)) encode_pair(z0, z1) -> pair(encArg(z0), encArg(z1)) encode_snd(z0) -> snd(encArg(z0)) encode_splitAt(z0, z1) -> splitAt(encArg(z0), encArg(z1)) encode_0 -> 0 encode_nil -> nil encode_u(z0, z1, z2, z3) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_sel(z0, z1) -> sel(encArg(z0), encArg(z1)) encode_afterNth(z0, z1) -> afterNth(encArg(z0), encArg(z1)) encode_take(z0, z1) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2, encArg_1, encode_active_1, encode_natsFrom_1, encode_mark_1, encode_cons_2, encode_s_1, encode_fst_1, encode_pair_2, encode_snd_1, encode_splitAt_2, encode_0, encode_nil, encode_u_4, encode_head_1, encode_tail_1, encode_sel_2, encode_afterNth_2, encode_take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c2_2, c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1 ---------------------------------------- (37) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: encode_active(z0) -> active(encArg(z0)) encode_natsFrom(z0) -> natsFrom(encArg(z0)) encode_mark(z0) -> mark(encArg(z0)) encode_cons(z0, z1) -> cons(encArg(z0), encArg(z1)) encode_s(z0) -> s(encArg(z0)) encode_fst(z0) -> fst(encArg(z0)) encode_pair(z0, z1) -> pair(encArg(z0), encArg(z1)) encode_snd(z0) -> snd(encArg(z0)) encode_splitAt(z0, z1) -> splitAt(encArg(z0), encArg(z1)) encode_0 -> 0 encode_nil -> nil encode_u(z0, z1, z2, z3) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encode_head(z0) -> head(encArg(z0)) encode_tail(z0) -> tail(encArg(z0)) encode_sel(z0, z1) -> sel(encArg(z0), encArg(z1)) encode_afterNth(z0, z1) -> afterNth(encArg(z0), encArg(z1)) encode_take(z0, z1) -> take(encArg(z0), encArg(z1)) ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c2_2, c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1 ---------------------------------------- (39) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_active(z0)) -> c2(ACTIVE(encArg(z0)), ENCARG(z0)) by ENCARG(cons_active(0)) -> c2(ACTIVE(0), ENCARG(0)) ENCARG(cons_active(nil)) -> c2(ACTIVE(nil), ENCARG(nil)) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(0)) -> c2(ACTIVE(0), ENCARG(0)) ENCARG(cons_active(nil)) -> c2(ACTIVE(nil), ENCARG(nil)) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2 ---------------------------------------- (41) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_active(nil)) -> c2(ACTIVE(nil), ENCARG(nil)) ENCARG(cons_active(0)) -> c2(ACTIVE(0), ENCARG(0)) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c3_2, c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2 ---------------------------------------- (43) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_mark(z0)) -> c3(MARK(encArg(z0)), ENCARG(z0)) by ENCARG(cons_mark(0)) -> c3(MARK(0), ENCARG(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil), ENCARG(nil)) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0), ENCARG(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil), ENCARG(nil)) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2 ---------------------------------------- (45) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c4_2, c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1 ---------------------------------------- (47) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_natsFrom(z0)) -> c4(NATSFROM(encArg(z0)), ENCARG(z0)) by ENCARG(cons_natsFrom(0)) -> c4(NATSFROM(0), ENCARG(0)) ENCARG(cons_natsFrom(nil)) -> c4(NATSFROM(nil), ENCARG(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(0)) -> c4(NATSFROM(0), ENCARG(0)) ENCARG(cons_natsFrom(nil)) -> c4(NATSFROM(nil), ENCARG(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2 ---------------------------------------- (49) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_natsFrom(0)) -> c4(NATSFROM(0), ENCARG(0)) ENCARG(cons_natsFrom(nil)) -> c4(NATSFROM(nil), ENCARG(nil)) ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c5_3, c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2 ---------------------------------------- (51) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_cons(z0, z1)) -> c5(CONS(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3 ---------------------------------------- (53) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c6_2, c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2 ---------------------------------------- (55) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_s(z0)) -> c6(S(encArg(z0)), ENCARG(z0)) by ENCARG(cons_s(0)) -> c6(S(0), ENCARG(0)) ENCARG(cons_s(nil)) -> c6(S(nil), ENCARG(nil)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(0)) -> c6(S(0), ENCARG(0)) ENCARG(cons_s(nil)) -> c6(S(nil), ENCARG(nil)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2 ---------------------------------------- (57) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_s(0)) -> c6(S(0), ENCARG(0)) ENCARG(cons_s(nil)) -> c6(S(nil), ENCARG(nil)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c7_2, c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2 ---------------------------------------- (59) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_fst(z0)) -> c7(FST(encArg(z0)), ENCARG(z0)) by ENCARG(cons_fst(0)) -> c7(FST(0), ENCARG(0)) ENCARG(cons_fst(nil)) -> c7(FST(nil), ENCARG(nil)) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(0)) -> c7(FST(0), ENCARG(0)) ENCARG(cons_fst(nil)) -> c7(FST(nil), ENCARG(nil)) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2 ---------------------------------------- (61) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_fst(0)) -> c7(FST(0), ENCARG(0)) ENCARG(cons_fst(nil)) -> c7(FST(nil), ENCARG(nil)) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c8_3, c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2 ---------------------------------------- (63) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_pair(z0, z1)) -> c8(PAIR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3 ---------------------------------------- (65) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c9_2, c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2 ---------------------------------------- (67) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_snd(z0)) -> c9(SND(encArg(z0)), ENCARG(z0)) by ENCARG(cons_snd(0)) -> c9(SND(0), ENCARG(0)) ENCARG(cons_snd(nil)) -> c9(SND(nil), ENCARG(nil)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(0)) -> c9(SND(0), ENCARG(0)) ENCARG(cons_snd(nil)) -> c9(SND(nil), ENCARG(nil)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2 ---------------------------------------- (69) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_snd(0)) -> c9(SND(0), ENCARG(0)) ENCARG(cons_snd(nil)) -> c9(SND(nil), ENCARG(nil)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c10_3, c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2 ---------------------------------------- (71) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_splitAt(z0, z1)) -> c10(SPLITAT(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3 ---------------------------------------- (73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c11_5, c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_u(z0, z1, z2, z3)) -> c11(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), ENCARG(z0), ENCARG(z1), ENCARG(z2), ENCARG(z3)) by ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(0)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(nil)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(0), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(nil), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(nil), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(0), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(nil), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(0)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(nil)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(0), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(nil), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(nil), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(0), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(nil), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5 ---------------------------------------- (77) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c12_2, c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4 ---------------------------------------- (79) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_head(z0)) -> c12(HEAD(encArg(z0)), ENCARG(z0)) by ENCARG(cons_head(0)) -> c12(HEAD(0), ENCARG(0)) ENCARG(cons_head(nil)) -> c12(HEAD(nil), ENCARG(nil)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(0)) -> c12(HEAD(0), ENCARG(0)) ENCARG(cons_head(nil)) -> c12(HEAD(nil), ENCARG(nil)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2 ---------------------------------------- (81) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_head(nil)) -> c12(HEAD(nil), ENCARG(nil)) ENCARG(cons_head(0)) -> c12(HEAD(0), ENCARG(0)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c13_2, c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2 ---------------------------------------- (83) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_tail(z0)) -> c13(TAIL(encArg(z0)), ENCARG(z0)) by ENCARG(cons_tail(0)) -> c13(TAIL(0), ENCARG(0)) ENCARG(cons_tail(nil)) -> c13(TAIL(nil), ENCARG(nil)) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(0)) -> c13(TAIL(0), ENCARG(0)) ENCARG(cons_tail(nil)) -> c13(TAIL(nil), ENCARG(nil)) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2 ---------------------------------------- (85) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: ENCARG(cons_tail(nil)) -> c13(TAIL(nil), ENCARG(nil)) ENCARG(cons_tail(0)) -> c13(TAIL(0), ENCARG(0)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c14_3, c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2 ---------------------------------------- (87) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_sel(z0, z1)) -> c14(SEL(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3 ---------------------------------------- (89) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c15_3, c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2 ---------------------------------------- (91) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_afterNth(z0, z1)) -> c15(AFTERNTH(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3 ---------------------------------------- (93) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ENCARG_1, ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2 Compound Symbols: c16_3, c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2 ---------------------------------------- (95) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_take(z0, z1)) -> c16(TAKE(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3 ---------------------------------------- (97) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c45_3, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2 ---------------------------------------- (99) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(mark(z0))), NATSFROM(mark(z0)), MARK(z0)) by MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c46_3, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3 ---------------------------------------- (101) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(cons(z0, z1)) -> c46(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0)) by MARK(cons(z0, z1)) -> c46(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0)) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0)) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(z0, z1)) -> c46(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0)) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c47_3, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(s(z0)) -> c47(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0)) by MARK(s(z0)) -> c47(ACTIVE(s(z0)), S(mark(z0)), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(z0)), S(mark(z0)), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(ACTIVE(s(z0)), S(mark(z0)), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3 ---------------------------------------- (107) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c48_3, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(z0)) -> c48(ACTIVE(fst(mark(z0))), FST(mark(z0)), MARK(z0)) by MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c49_4, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(pair(z0, z1)) -> c49(ACTIVE(pair(mark(z0), mark(z1))), PAIR(mark(z0), mark(z1)), MARK(z0), MARK(z1)) by MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c50_3, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(snd(z0)) -> c50(ACTIVE(snd(mark(z0))), SND(mark(z0)), MARK(z0)) by MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c51_4, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4, c50_3 ---------------------------------------- (115) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(splitAt(z0, z1)) -> c51(ACTIVE(splitAt(mark(z0), mark(z1))), SPLITAT(mark(z0), mark(z1)), MARK(z0), MARK(z1)) by MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c54_3, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4, c50_3, c51_4 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(mark(z0), z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) by MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c55_3, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4, c50_3, c51_4, c54_3, c54_1 ---------------------------------------- (119) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(head(z0)) -> c55(ACTIVE(head(mark(z0))), HEAD(mark(z0)), MARK(z0)) by MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c56_3, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4, c50_3, c51_4, c54_3, c54_1, c55_3 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(tail(z0)) -> c56(ACTIVE(tail(mark(z0))), TAIL(mark(z0)), MARK(z0)) by MARK(tail(z0)) -> c56(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(natsFrom(z0))) -> c56(ACTIVE(tail(active(natsFrom(mark(z0))))), TAIL(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(tail(cons(z0, z1))) -> c56(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c56(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(fst(z0))) -> c56(ACTIVE(tail(active(fst(mark(z0))))), TAIL(mark(fst(z0))), MARK(fst(z0))) MARK(tail(pair(z0, z1))) -> c56(ACTIVE(tail(active(pair(mark(z0), mark(z1))))), TAIL(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(tail(snd(z0))) -> c56(ACTIVE(tail(active(snd(mark(z0))))), TAIL(mark(snd(z0))), MARK(snd(z0))) MARK(tail(splitAt(z0, z1))) -> c56(ACTIVE(tail(active(splitAt(mark(z0), mark(z1))))), TAIL(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(tail(0)) -> c56(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(nil)) -> c56(ACTIVE(tail(active(nil))), TAIL(mark(nil)), MARK(nil)) MARK(tail(u(z0, z1, z2, z3))) -> c56(ACTIVE(tail(active(u(mark(z0), z1, z2, z3)))), TAIL(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(tail(head(z0))) -> c56(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c56(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(sel(z0, z1))) -> c56(ACTIVE(tail(active(sel(mark(z0), mark(z1))))), TAIL(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c56(ACTIVE(tail(active(afterNth(mark(z0), mark(z1))))), TAIL(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(tail(take(z0, z1))) -> c56(ACTIVE(tail(active(take(mark(z0), mark(z1))))), TAIL(mark(take(z0, z1))), MARK(take(z0, z1))) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(tail(z0)) -> c56(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(natsFrom(z0))) -> c56(ACTIVE(tail(active(natsFrom(mark(z0))))), TAIL(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(tail(cons(z0, z1))) -> c56(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c56(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(fst(z0))) -> c56(ACTIVE(tail(active(fst(mark(z0))))), TAIL(mark(fst(z0))), MARK(fst(z0))) MARK(tail(pair(z0, z1))) -> c56(ACTIVE(tail(active(pair(mark(z0), mark(z1))))), TAIL(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(tail(snd(z0))) -> c56(ACTIVE(tail(active(snd(mark(z0))))), TAIL(mark(snd(z0))), MARK(snd(z0))) MARK(tail(splitAt(z0, z1))) -> c56(ACTIVE(tail(active(splitAt(mark(z0), mark(z1))))), TAIL(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(tail(0)) -> c56(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(nil)) -> c56(ACTIVE(tail(active(nil))), TAIL(mark(nil)), MARK(nil)) MARK(tail(u(z0, z1, z2, z3))) -> c56(ACTIVE(tail(active(u(mark(z0), z1, z2, z3)))), TAIL(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(tail(head(z0))) -> c56(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c56(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(sel(z0, z1))) -> c56(ACTIVE(tail(active(sel(mark(z0), mark(z1))))), TAIL(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c56(ACTIVE(tail(active(afterNth(mark(z0), mark(z1))))), TAIL(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(tail(take(z0, z1))) -> c56(ACTIVE(tail(active(take(mark(z0), mark(z1))))), TAIL(mark(take(z0, z1))), MARK(take(z0, z1))) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(tail(z0)) -> c56(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(natsFrom(z0))) -> c56(ACTIVE(tail(active(natsFrom(mark(z0))))), TAIL(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(tail(cons(z0, z1))) -> c56(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c56(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(fst(z0))) -> c56(ACTIVE(tail(active(fst(mark(z0))))), TAIL(mark(fst(z0))), MARK(fst(z0))) MARK(tail(pair(z0, z1))) -> c56(ACTIVE(tail(active(pair(mark(z0), mark(z1))))), TAIL(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(tail(snd(z0))) -> c56(ACTIVE(tail(active(snd(mark(z0))))), TAIL(mark(snd(z0))), MARK(snd(z0))) MARK(tail(splitAt(z0, z1))) -> c56(ACTIVE(tail(active(splitAt(mark(z0), mark(z1))))), TAIL(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(tail(0)) -> c56(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(nil)) -> c56(ACTIVE(tail(active(nil))), TAIL(mark(nil)), MARK(nil)) MARK(tail(u(z0, z1, z2, z3))) -> c56(ACTIVE(tail(active(u(mark(z0), z1, z2, z3)))), TAIL(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(tail(head(z0))) -> c56(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c56(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(sel(z0, z1))) -> c56(ACTIVE(tail(active(sel(mark(z0), mark(z1))))), TAIL(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c56(ACTIVE(tail(active(afterNth(mark(z0), mark(z1))))), TAIL(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(tail(take(z0, z1))) -> c56(ACTIVE(tail(active(take(mark(z0), mark(z1))))), TAIL(mark(take(z0, z1))), MARK(take(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c57_4, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4, c50_3, c51_4, c54_3, c54_1, c55_3, c56_3 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(sel(z0, z1)) -> c57(ACTIVE(sel(mark(z0), mark(z1))), SEL(mark(z0), mark(z1)), MARK(z0), MARK(z1)) by MARK(sel(z0, x1)) -> c57(ACTIVE(sel(z0, mark(x1))), SEL(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(sel(x0, z1)) -> c57(ACTIVE(sel(mark(x0), z1)), SEL(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(sel(x0, natsFrom(z0))) -> c57(ACTIVE(sel(mark(x0), active(natsFrom(mark(z0))))), SEL(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(sel(x0, cons(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(cons(mark(z0), z1)))), SEL(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(sel(x0, s(z0))) -> c57(ACTIVE(sel(mark(x0), active(s(mark(z0))))), SEL(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(sel(x0, fst(z0))) -> c57(ACTIVE(sel(mark(x0), active(fst(mark(z0))))), SEL(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(sel(x0, pair(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(pair(mark(z0), mark(z1))))), SEL(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(sel(x0, snd(z0))) -> c57(ACTIVE(sel(mark(x0), active(snd(mark(z0))))), SEL(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(sel(x0, splitAt(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(splitAt(mark(z0), mark(z1))))), SEL(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(sel(x0, 0)) -> c57(ACTIVE(sel(mark(x0), active(0))), SEL(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(sel(x0, nil)) -> c57(ACTIVE(sel(mark(x0), active(nil))), SEL(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(sel(x0, u(z0, z1, z2, z3))) -> c57(ACTIVE(sel(mark(x0), active(u(mark(z0), z1, z2, z3)))), SEL(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(sel(x0, head(z0))) -> c57(ACTIVE(sel(mark(x0), active(head(mark(z0))))), SEL(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(sel(x0, tail(z0))) -> c57(ACTIVE(sel(mark(x0), active(tail(mark(z0))))), SEL(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(sel(x0, sel(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(sel(mark(z0), mark(z1))))), SEL(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(sel(x0, afterNth(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(afterNth(mark(z0), mark(z1))))), SEL(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(sel(x0, take(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(take(mark(z0), mark(z1))))), SEL(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(sel(natsFrom(z0), x1)) -> c57(ACTIVE(sel(active(natsFrom(mark(z0))), mark(x1))), SEL(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(sel(cons(z0, z1), x1)) -> c57(ACTIVE(sel(active(cons(mark(z0), z1)), mark(x1))), SEL(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(sel(s(z0), x1)) -> c57(ACTIVE(sel(active(s(mark(z0))), mark(x1))), SEL(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(sel(fst(z0), x1)) -> c57(ACTIVE(sel(active(fst(mark(z0))), mark(x1))), SEL(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(sel(pair(z0, z1), x1)) -> c57(ACTIVE(sel(active(pair(mark(z0), mark(z1))), mark(x1))), SEL(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(sel(snd(z0), x1)) -> c57(ACTIVE(sel(active(snd(mark(z0))), mark(x1))), SEL(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(sel(splitAt(z0, z1), x1)) -> c57(ACTIVE(sel(active(splitAt(mark(z0), mark(z1))), mark(x1))), SEL(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(sel(0, x1)) -> c57(ACTIVE(sel(active(0), mark(x1))), SEL(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(sel(nil, x1)) -> c57(ACTIVE(sel(active(nil), mark(x1))), SEL(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(sel(u(z0, z1, z2, z3), x1)) -> c57(ACTIVE(sel(active(u(mark(z0), z1, z2, z3)), mark(x1))), SEL(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(sel(head(z0), x1)) -> c57(ACTIVE(sel(active(head(mark(z0))), mark(x1))), SEL(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(sel(tail(z0), x1)) -> c57(ACTIVE(sel(active(tail(mark(z0))), mark(x1))), SEL(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(sel(sel(z0, z1), x1)) -> c57(ACTIVE(sel(active(sel(mark(z0), mark(z1))), mark(x1))), SEL(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(sel(afterNth(z0, z1), x1)) -> c57(ACTIVE(sel(active(afterNth(mark(z0), mark(z1))), mark(x1))), SEL(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(sel(take(z0, z1), x1)) -> c57(ACTIVE(sel(active(take(mark(z0), mark(z1))), mark(x1))), SEL(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(nil) -> nil encArg(cons_active(z0)) -> active(encArg(z0)) encArg(cons_mark(z0)) -> mark(encArg(z0)) encArg(cons_natsFrom(z0)) -> natsFrom(encArg(z0)) encArg(cons_cons(z0, z1)) -> cons(encArg(z0), encArg(z1)) encArg(cons_s(z0)) -> s(encArg(z0)) encArg(cons_fst(z0)) -> fst(encArg(z0)) encArg(cons_pair(z0, z1)) -> pair(encArg(z0), encArg(z1)) encArg(cons_snd(z0)) -> snd(encArg(z0)) encArg(cons_splitAt(z0, z1)) -> splitAt(encArg(z0), encArg(z1)) encArg(cons_u(z0, z1, z2, z3)) -> u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)) encArg(cons_head(z0)) -> head(encArg(z0)) encArg(cons_tail(z0)) -> tail(encArg(z0)) encArg(cons_sel(z0, z1)) -> sel(encArg(z0), encArg(z1)) encArg(cons_afterNth(z0, z1)) -> afterNth(encArg(z0), encArg(z1)) encArg(cons_take(z0, z1)) -> take(encArg(z0), encArg(z1)) active(natsFrom(z0)) -> mark(cons(z0, natsFrom(s(z0)))) active(fst(pair(z0, z1))) -> mark(z0) active(snd(pair(z0, z1))) -> mark(z1) active(splitAt(0, z0)) -> mark(pair(nil, z0)) active(splitAt(s(z0), cons(z1, z2))) -> mark(u(splitAt(z0, z2), z0, z1, z2)) active(u(pair(z0, z1), z2, z3, z4)) -> mark(pair(cons(z3, z0), z1)) active(head(cons(z0, z1))) -> mark(z0) active(tail(cons(z0, z1))) -> mark(z1) active(sel(z0, z1)) -> mark(head(afterNth(z0, z1))) active(take(z0, z1)) -> mark(fst(splitAt(z0, z1))) active(afterNth(z0, z1)) -> mark(snd(splitAt(z0, z1))) mark(natsFrom(z0)) -> active(natsFrom(mark(z0))) mark(cons(z0, z1)) -> active(cons(mark(z0), z1)) mark(s(z0)) -> active(s(mark(z0))) mark(fst(z0)) -> active(fst(mark(z0))) mark(pair(z0, z1)) -> active(pair(mark(z0), mark(z1))) mark(snd(z0)) -> active(snd(mark(z0))) mark(splitAt(z0, z1)) -> active(splitAt(mark(z0), mark(z1))) mark(0) -> active(0) mark(nil) -> active(nil) mark(u(z0, z1, z2, z3)) -> active(u(mark(z0), z1, z2, z3)) mark(head(z0)) -> active(head(mark(z0))) mark(tail(z0)) -> active(tail(mark(z0))) mark(sel(z0, z1)) -> active(sel(mark(z0), mark(z1))) mark(afterNth(z0, z1)) -> active(afterNth(mark(z0), mark(z1))) mark(take(z0, z1)) -> active(take(mark(z0), mark(z1))) natsFrom(mark(z0)) -> natsFrom(z0) natsFrom(active(z0)) -> natsFrom(z0) cons(mark(z0), z1) -> cons(z0, z1) cons(z0, mark(z1)) -> cons(z0, z1) cons(active(z0), z1) -> cons(z0, z1) cons(z0, active(z1)) -> cons(z0, z1) s(mark(z0)) -> s(z0) s(active(z0)) -> s(z0) fst(mark(z0)) -> fst(z0) fst(active(z0)) -> fst(z0) pair(mark(z0), z1) -> pair(z0, z1) pair(z0, mark(z1)) -> pair(z0, z1) pair(active(z0), z1) -> pair(z0, z1) pair(z0, active(z1)) -> pair(z0, z1) snd(mark(z0)) -> snd(z0) snd(active(z0)) -> snd(z0) splitAt(mark(z0), z1) -> splitAt(z0, z1) splitAt(z0, mark(z1)) -> splitAt(z0, z1) splitAt(active(z0), z1) -> splitAt(z0, z1) splitAt(z0, active(z1)) -> splitAt(z0, z1) u(mark(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, mark(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, mark(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, mark(z3)) -> u(z0, z1, z2, z3) u(active(z0), z1, z2, z3) -> u(z0, z1, z2, z3) u(z0, active(z1), z2, z3) -> u(z0, z1, z2, z3) u(z0, z1, active(z2), z3) -> u(z0, z1, z2, z3) u(z0, z1, z2, active(z3)) -> u(z0, z1, z2, z3) head(mark(z0)) -> head(z0) head(active(z0)) -> head(z0) tail(mark(z0)) -> tail(z0) tail(active(z0)) -> tail(z0) sel(mark(z0), z1) -> sel(z0, z1) sel(z0, mark(z1)) -> sel(z0, z1) sel(active(z0), z1) -> sel(z0, z1) sel(z0, active(z1)) -> sel(z0, z1) afterNth(mark(z0), z1) -> afterNth(z0, z1) afterNth(z0, mark(z1)) -> afterNth(z0, z1) afterNth(active(z0), z1) -> afterNth(z0, z1) afterNth(z0, active(z1)) -> afterNth(z0, z1) take(mark(z0), z1) -> take(z0, z1) take(z0, mark(z1)) -> take(z0, z1) take(active(z0), z1) -> take(z0, z1) take(z0, active(z1)) -> take(z0, z1) Tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 ENCODE_ACTIVE(z0) -> c(ACTIVE(encArg(z0))) ENCODE_NATSFROM(z0) -> c(NATSFROM(encArg(z0))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_CONS(z0, z1) -> c(CONS(encArg(z0), encArg(z1))) ENCODE_S(z0) -> c(S(encArg(z0))) ENCODE_FST(z0) -> c(FST(encArg(z0))) ENCODE_PAIR(z0, z1) -> c(PAIR(encArg(z0), encArg(z1))) ENCODE_SND(z0) -> c(SND(encArg(z0))) ENCODE_SPLITAT(z0, z1) -> c(SPLITAT(encArg(z0), encArg(z1))) ENCODE_U(z0, z1, z2, z3) -> c(U(encArg(z0), encArg(z1), encArg(z2), encArg(z3))) ENCODE_HEAD(z0) -> c(HEAD(encArg(z0))) ENCODE_TAIL(z0) -> c(TAIL(encArg(z0))) ENCODE_SEL(z0, z1) -> c(SEL(encArg(z0), encArg(z1))) ENCODE_AFTERNTH(z0, z1) -> c(AFTERNTH(encArg(z0), encArg(z1))) ENCODE_TAKE(z0, z1) -> c(TAKE(encArg(z0), encArg(z1))) ENCARG(cons_active(cons_active(z0))) -> c2(ACTIVE(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_active(cons_mark(z0))) -> c2(ACTIVE(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_active(cons_natsFrom(z0))) -> c2(ACTIVE(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_active(cons_cons(z0, z1))) -> c2(ACTIVE(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_active(cons_s(z0))) -> c2(ACTIVE(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_active(cons_fst(z0))) -> c2(ACTIVE(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_active(cons_pair(z0, z1))) -> c2(ACTIVE(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_active(cons_snd(z0))) -> c2(ACTIVE(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_active(cons_splitAt(z0, z1))) -> c2(ACTIVE(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_active(cons_u(z0, z1, z2, z3))) -> c2(ACTIVE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_active(cons_head(z0))) -> c2(ACTIVE(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_active(cons_tail(z0))) -> c2(ACTIVE(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_active(cons_sel(z0, z1))) -> c2(ACTIVE(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_active(cons_afterNth(z0, z1))) -> c2(ACTIVE(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_active(cons_take(z0, z1))) -> c2(ACTIVE(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(cons_active(z0))) -> c3(MARK(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_mark(cons_mark(z0))) -> c3(MARK(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_mark(cons_natsFrom(z0))) -> c3(MARK(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_mark(cons_cons(z0, z1))) -> c3(MARK(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_mark(cons_s(z0))) -> c3(MARK(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_mark(cons_fst(z0))) -> c3(MARK(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_mark(cons_pair(z0, z1))) -> c3(MARK(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_mark(cons_snd(z0))) -> c3(MARK(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_mark(cons_splitAt(z0, z1))) -> c3(MARK(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_mark(cons_u(z0, z1, z2, z3))) -> c3(MARK(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_mark(cons_head(z0))) -> c3(MARK(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_mark(cons_tail(z0))) -> c3(MARK(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_mark(cons_sel(z0, z1))) -> c3(MARK(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_mark(cons_afterNth(z0, z1))) -> c3(MARK(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_mark(cons_take(z0, z1))) -> c3(MARK(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_mark(0)) -> c3(MARK(0)) ENCARG(cons_mark(nil)) -> c3(MARK(nil)) ENCARG(cons_natsFrom(cons_active(z0))) -> c4(NATSFROM(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_natsFrom(cons_mark(z0))) -> c4(NATSFROM(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_natsFrom(cons_natsFrom(z0))) -> c4(NATSFROM(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_natsFrom(cons_cons(z0, z1))) -> c4(NATSFROM(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_natsFrom(cons_s(z0))) -> c4(NATSFROM(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_natsFrom(cons_fst(z0))) -> c4(NATSFROM(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_natsFrom(cons_pair(z0, z1))) -> c4(NATSFROM(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_natsFrom(cons_snd(z0))) -> c4(NATSFROM(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_natsFrom(cons_splitAt(z0, z1))) -> c4(NATSFROM(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_natsFrom(cons_u(z0, z1, z2, z3))) -> c4(NATSFROM(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_natsFrom(cons_head(z0))) -> c4(NATSFROM(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_natsFrom(cons_tail(z0))) -> c4(NATSFROM(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_natsFrom(cons_sel(z0, z1))) -> c4(NATSFROM(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_natsFrom(cons_afterNth(z0, z1))) -> c4(NATSFROM(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_natsFrom(cons_take(z0, z1))) -> c4(NATSFROM(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(x0, cons_active(z0))) -> c5(CONS(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_cons(x0, cons_mark(z0))) -> c5(CONS(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_cons(x0, cons_natsFrom(z0))) -> c5(CONS(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_cons(x0, cons_cons(z0, z1))) -> c5(CONS(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_cons(x0, cons_s(z0))) -> c5(CONS(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_cons(x0, cons_fst(z0))) -> c5(CONS(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_cons(x0, cons_pair(z0, z1))) -> c5(CONS(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_cons(x0, cons_snd(z0))) -> c5(CONS(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_cons(x0, cons_splitAt(z0, z1))) -> c5(CONS(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_cons(x0, cons_u(z0, z1, z2, z3))) -> c5(CONS(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_cons(x0, cons_head(z0))) -> c5(CONS(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_cons(x0, cons_tail(z0))) -> c5(CONS(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_cons(x0, cons_sel(z0, z1))) -> c5(CONS(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_cons(x0, cons_afterNth(z0, z1))) -> c5(CONS(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_cons(x0, cons_take(z0, z1))) -> c5(CONS(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_cons(cons_active(z0), x1)) -> c5(CONS(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_mark(z0), x1)) -> c5(CONS(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_natsFrom(z0), x1)) -> c5(CONS(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_cons(z0, z1), x1)) -> c5(CONS(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_s(z0), x1)) -> c5(CONS(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_fst(z0), x1)) -> c5(CONS(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_pair(z0, z1), x1)) -> c5(CONS(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_snd(z0), x1)) -> c5(CONS(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_splitAt(z0, z1), x1)) -> c5(CONS(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_u(z0, z1, z2, z3), x1)) -> c5(CONS(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_cons(cons_head(z0), x1)) -> c5(CONS(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_tail(z0), x1)) -> c5(CONS(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_cons(cons_sel(z0, z1), x1)) -> c5(CONS(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_afterNth(z0, z1), x1)) -> c5(CONS(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(cons_take(z0, z1), x1)) -> c5(CONS(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_cons(x0, 0)) -> c5(CONS(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_cons(x0, nil)) -> c5(CONS(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_cons(0, x1)) -> c5(CONS(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_cons(nil, x1)) -> c5(CONS(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_s(cons_active(z0))) -> c6(S(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_s(cons_mark(z0))) -> c6(S(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_s(cons_natsFrom(z0))) -> c6(S(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_s(cons_cons(z0, z1))) -> c6(S(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_s(cons_s(z0))) -> c6(S(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_s(cons_fst(z0))) -> c6(S(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_s(cons_pair(z0, z1))) -> c6(S(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_s(cons_snd(z0))) -> c6(S(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_s(cons_splitAt(z0, z1))) -> c6(S(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_s(cons_u(z0, z1, z2, z3))) -> c6(S(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_s(cons_head(z0))) -> c6(S(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_s(cons_tail(z0))) -> c6(S(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_s(cons_sel(z0, z1))) -> c6(S(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_s(cons_afterNth(z0, z1))) -> c6(S(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_s(cons_take(z0, z1))) -> c6(S(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_fst(cons_active(z0))) -> c7(FST(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_fst(cons_mark(z0))) -> c7(FST(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_fst(cons_natsFrom(z0))) -> c7(FST(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_fst(cons_cons(z0, z1))) -> c7(FST(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_fst(cons_s(z0))) -> c7(FST(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_fst(cons_fst(z0))) -> c7(FST(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_fst(cons_pair(z0, z1))) -> c7(FST(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_fst(cons_snd(z0))) -> c7(FST(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_fst(cons_splitAt(z0, z1))) -> c7(FST(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_fst(cons_u(z0, z1, z2, z3))) -> c7(FST(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_fst(cons_head(z0))) -> c7(FST(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_fst(cons_tail(z0))) -> c7(FST(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_fst(cons_sel(z0, z1))) -> c7(FST(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_fst(cons_afterNth(z0, z1))) -> c7(FST(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_fst(cons_take(z0, z1))) -> c7(FST(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(x0, cons_active(z0))) -> c8(PAIR(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_pair(x0, cons_mark(z0))) -> c8(PAIR(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_pair(x0, cons_natsFrom(z0))) -> c8(PAIR(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_pair(x0, cons_cons(z0, z1))) -> c8(PAIR(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_pair(x0, cons_s(z0))) -> c8(PAIR(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_pair(x0, cons_fst(z0))) -> c8(PAIR(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_pair(x0, cons_pair(z0, z1))) -> c8(PAIR(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_pair(x0, cons_snd(z0))) -> c8(PAIR(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_pair(x0, cons_splitAt(z0, z1))) -> c8(PAIR(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_pair(x0, cons_u(z0, z1, z2, z3))) -> c8(PAIR(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_pair(x0, cons_head(z0))) -> c8(PAIR(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_pair(x0, cons_tail(z0))) -> c8(PAIR(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_pair(x0, cons_sel(z0, z1))) -> c8(PAIR(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_pair(x0, cons_afterNth(z0, z1))) -> c8(PAIR(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_pair(x0, cons_take(z0, z1))) -> c8(PAIR(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_pair(cons_active(z0), x1)) -> c8(PAIR(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_mark(z0), x1)) -> c8(PAIR(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_natsFrom(z0), x1)) -> c8(PAIR(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_cons(z0, z1), x1)) -> c8(PAIR(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_s(z0), x1)) -> c8(PAIR(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_fst(z0), x1)) -> c8(PAIR(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_pair(z0, z1), x1)) -> c8(PAIR(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_snd(z0), x1)) -> c8(PAIR(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_splitAt(z0, z1), x1)) -> c8(PAIR(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_u(z0, z1, z2, z3), x1)) -> c8(PAIR(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_pair(cons_head(z0), x1)) -> c8(PAIR(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_tail(z0), x1)) -> c8(PAIR(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_pair(cons_sel(z0, z1), x1)) -> c8(PAIR(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_afterNth(z0, z1), x1)) -> c8(PAIR(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(cons_take(z0, z1), x1)) -> c8(PAIR(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_pair(x0, 0)) -> c8(PAIR(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_pair(x0, nil)) -> c8(PAIR(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_pair(0, x1)) -> c8(PAIR(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_pair(nil, x1)) -> c8(PAIR(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_snd(cons_active(z0))) -> c9(SND(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_snd(cons_mark(z0))) -> c9(SND(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_snd(cons_natsFrom(z0))) -> c9(SND(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_snd(cons_cons(z0, z1))) -> c9(SND(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_snd(cons_s(z0))) -> c9(SND(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_snd(cons_fst(z0))) -> c9(SND(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_snd(cons_pair(z0, z1))) -> c9(SND(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_snd(cons_snd(z0))) -> c9(SND(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_snd(cons_splitAt(z0, z1))) -> c9(SND(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_snd(cons_u(z0, z1, z2, z3))) -> c9(SND(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_snd(cons_head(z0))) -> c9(SND(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_snd(cons_tail(z0))) -> c9(SND(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_snd(cons_sel(z0, z1))) -> c9(SND(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_snd(cons_afterNth(z0, z1))) -> c9(SND(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_snd(cons_take(z0, z1))) -> c9(SND(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(x0, cons_active(z0))) -> c10(SPLITAT(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_splitAt(x0, cons_mark(z0))) -> c10(SPLITAT(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_splitAt(x0, cons_natsFrom(z0))) -> c10(SPLITAT(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_splitAt(x0, cons_cons(z0, z1))) -> c10(SPLITAT(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_splitAt(x0, cons_s(z0))) -> c10(SPLITAT(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_splitAt(x0, cons_fst(z0))) -> c10(SPLITAT(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_splitAt(x0, cons_pair(z0, z1))) -> c10(SPLITAT(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_splitAt(x0, cons_snd(z0))) -> c10(SPLITAT(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_splitAt(x0, cons_splitAt(z0, z1))) -> c10(SPLITAT(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_splitAt(x0, cons_u(z0, z1, z2, z3))) -> c10(SPLITAT(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_splitAt(x0, cons_head(z0))) -> c10(SPLITAT(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_splitAt(x0, cons_tail(z0))) -> c10(SPLITAT(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_splitAt(x0, cons_sel(z0, z1))) -> c10(SPLITAT(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_splitAt(x0, cons_afterNth(z0, z1))) -> c10(SPLITAT(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_splitAt(x0, cons_take(z0, z1))) -> c10(SPLITAT(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_splitAt(cons_active(z0), x1)) -> c10(SPLITAT(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_mark(z0), x1)) -> c10(SPLITAT(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_natsFrom(z0), x1)) -> c10(SPLITAT(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_cons(z0, z1), x1)) -> c10(SPLITAT(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_s(z0), x1)) -> c10(SPLITAT(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_fst(z0), x1)) -> c10(SPLITAT(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_pair(z0, z1), x1)) -> c10(SPLITAT(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_snd(z0), x1)) -> c10(SPLITAT(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_splitAt(z0, z1), x1)) -> c10(SPLITAT(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_u(z0, z1, z2, z3), x1)) -> c10(SPLITAT(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_splitAt(cons_head(z0), x1)) -> c10(SPLITAT(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_tail(z0), x1)) -> c10(SPLITAT(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_splitAt(cons_sel(z0, z1), x1)) -> c10(SPLITAT(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_afterNth(z0, z1), x1)) -> c10(SPLITAT(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(cons_take(z0, z1), x1)) -> c10(SPLITAT(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_splitAt(x0, 0)) -> c10(SPLITAT(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_splitAt(x0, nil)) -> c10(SPLITAT(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_splitAt(0, x1)) -> c10(SPLITAT(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_splitAt(nil, x1)) -> c10(SPLITAT(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_u(x0, x1, x2, cons_active(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), active(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_active(z0))) ENCARG(cons_u(x0, x1, x2, cons_mark(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), mark(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_mark(z0))) ENCARG(cons_u(x0, x1, x2, cons_natsFrom(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_natsFrom(z0))) ENCARG(cons_u(x0, x1, x2, cons_cons(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_cons(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_s(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), s(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_s(z0))) ENCARG(cons_u(x0, x1, x2, cons_fst(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), fst(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_fst(z0))) ENCARG(cons_u(x0, x1, x2, cons_pair(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_pair(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_snd(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), snd(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_snd(z0))) ENCARG(cons_u(x0, x1, x2, cons_splitAt(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_u(z0, z1, z2, z3))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_u(x0, x1, x2, cons_head(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), head(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_head(z0))) ENCARG(cons_u(x0, x1, x2, cons_tail(z0))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), tail(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_tail(z0))) ENCARG(cons_u(x0, x1, x2, cons_sel(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_sel(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_afterNth(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_u(x0, x1, x2, cons_take(z0, z1))) -> c11(U(encArg(x0), encArg(x1), encArg(x2), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(x2), ENCARG(cons_take(z0, z1))) ENCARG(cons_u(x0, x1, cons_active(z0), x3)) -> c11(U(encArg(x0), encArg(x1), active(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_active(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_mark(z0), x3)) -> c11(U(encArg(x0), encArg(x1), mark(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_mark(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_natsFrom(z0), x3)) -> c11(U(encArg(x0), encArg(x1), natsFrom(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_natsFrom(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_cons(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), cons(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_cons(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_s(z0), x3)) -> c11(U(encArg(x0), encArg(x1), s(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_s(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_fst(z0), x3)) -> c11(U(encArg(x0), encArg(x1), fst(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_fst(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_pair(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), pair(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_pair(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_snd(z0), x3)) -> c11(U(encArg(x0), encArg(x1), snd(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_snd(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_splitAt(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), splitAt(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_splitAt(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_u(z0, z1, z2, z3), x3)) -> c11(U(encArg(x0), encArg(x1), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_head(z0), x3)) -> c11(U(encArg(x0), encArg(x1), head(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_head(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_tail(z0), x3)) -> c11(U(encArg(x0), encArg(x1), tail(encArg(z0)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_tail(z0)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_sel(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), sel(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_sel(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_afterNth(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), afterNth(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_afterNth(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, x1, cons_take(z0, z1), x3)) -> c11(U(encArg(x0), encArg(x1), take(encArg(z0), encArg(z1)), encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(cons_take(z0, z1)), ENCARG(x3)) ENCARG(cons_u(x0, cons_active(z0), x2, x3)) -> c11(U(encArg(x0), active(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_active(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_mark(z0), x2, x3)) -> c11(U(encArg(x0), mark(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_mark(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_natsFrom(z0), x2, x3)) -> c11(U(encArg(x0), natsFrom(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_natsFrom(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_cons(z0, z1), x2, x3)) -> c11(U(encArg(x0), cons(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_cons(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_s(z0), x2, x3)) -> c11(U(encArg(x0), s(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_s(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_fst(z0), x2, x3)) -> c11(U(encArg(x0), fst(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_fst(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_pair(z0, z1), x2, x3)) -> c11(U(encArg(x0), pair(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_pair(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_snd(z0), x2, x3)) -> c11(U(encArg(x0), snd(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_snd(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_splitAt(z0, z1), x2, x3)) -> c11(U(encArg(x0), splitAt(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_splitAt(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_u(z0, z1, z2, z3), x2, x3)) -> c11(U(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_head(z0), x2, x3)) -> c11(U(encArg(x0), head(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_head(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_tail(z0), x2, x3)) -> c11(U(encArg(x0), tail(encArg(z0)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_tail(z0)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_sel(z0, z1), x2, x3)) -> c11(U(encArg(x0), sel(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_sel(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_afterNth(z0, z1), x2, x3)) -> c11(U(encArg(x0), afterNth(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_afterNth(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, cons_take(z0, z1), x2, x3)) -> c11(U(encArg(x0), take(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(cons_take(z0, z1)), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_active(z0), x1, x2, x3)) -> c11(U(active(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_active(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_mark(z0), x1, x2, x3)) -> c11(U(mark(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_mark(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_natsFrom(z0), x1, x2, x3)) -> c11(U(natsFrom(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_natsFrom(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_cons(z0, z1), x1, x2, x3)) -> c11(U(cons(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_cons(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_s(z0), x1, x2, x3)) -> c11(U(s(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_s(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_fst(z0), x1, x2, x3)) -> c11(U(fst(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_fst(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_pair(z0, z1), x1, x2, x3)) -> c11(U(pair(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_pair(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_snd(z0), x1, x2, x3)) -> c11(U(snd(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_snd(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_splitAt(z0, z1), x1, x2, x3)) -> c11(U(splitAt(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_u(z0, z1, z2, z3), x1, x2, x3)) -> c11(U(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_head(z0), x1, x2, x3)) -> c11(U(head(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_head(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_tail(z0), x1, x2, x3)) -> c11(U(tail(encArg(z0)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_tail(z0)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_sel(z0, z1), x1, x2, x3)) -> c11(U(sel(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_sel(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_afterNth(z0, z1), x1, x2, x3)) -> c11(U(afterNth(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(cons_take(z0, z1), x1, x2, x3)) -> c11(U(take(encArg(z0), encArg(z1)), encArg(x1), encArg(x2), encArg(x3)), ENCARG(cons_take(z0, z1)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, x1, x2, 0)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), 0), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, x2, nil)) -> c11(U(encArg(x0), encArg(x1), encArg(x2), nil), ENCARG(x0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_u(x0, x1, 0, x3)) -> c11(U(encArg(x0), encArg(x1), 0, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, x1, nil, x3)) -> c11(U(encArg(x0), encArg(x1), nil, encArg(x3)), ENCARG(x0), ENCARG(x1), ENCARG(x3)) ENCARG(cons_u(x0, 0, x2, x3)) -> c11(U(encArg(x0), 0, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(x0, nil, x2, x3)) -> c11(U(encArg(x0), nil, encArg(x2), encArg(x3)), ENCARG(x0), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(0, x1, x2, x3)) -> c11(U(0, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_u(nil, x1, x2, x3)) -> c11(U(nil, encArg(x1), encArg(x2), encArg(x3)), ENCARG(x1), ENCARG(x2), ENCARG(x3)) ENCARG(cons_head(cons_active(z0))) -> c12(HEAD(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_head(cons_mark(z0))) -> c12(HEAD(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_head(cons_natsFrom(z0))) -> c12(HEAD(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_head(cons_cons(z0, z1))) -> c12(HEAD(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_head(cons_s(z0))) -> c12(HEAD(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_head(cons_fst(z0))) -> c12(HEAD(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_head(cons_pair(z0, z1))) -> c12(HEAD(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_head(cons_snd(z0))) -> c12(HEAD(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_head(cons_splitAt(z0, z1))) -> c12(HEAD(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_head(cons_u(z0, z1, z2, z3))) -> c12(HEAD(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_head(cons_head(z0))) -> c12(HEAD(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_head(cons_tail(z0))) -> c12(HEAD(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_head(cons_sel(z0, z1))) -> c12(HEAD(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_head(cons_afterNth(z0, z1))) -> c12(HEAD(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_head(cons_take(z0, z1))) -> c12(HEAD(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_tail(cons_active(z0))) -> c13(TAIL(active(encArg(z0))), ENCARG(cons_active(z0))) ENCARG(cons_tail(cons_mark(z0))) -> c13(TAIL(mark(encArg(z0))), ENCARG(cons_mark(z0))) ENCARG(cons_tail(cons_natsFrom(z0))) -> c13(TAIL(natsFrom(encArg(z0))), ENCARG(cons_natsFrom(z0))) ENCARG(cons_tail(cons_cons(z0, z1))) -> c13(TAIL(cons(encArg(z0), encArg(z1))), ENCARG(cons_cons(z0, z1))) ENCARG(cons_tail(cons_s(z0))) -> c13(TAIL(s(encArg(z0))), ENCARG(cons_s(z0))) ENCARG(cons_tail(cons_fst(z0))) -> c13(TAIL(fst(encArg(z0))), ENCARG(cons_fst(z0))) ENCARG(cons_tail(cons_pair(z0, z1))) -> c13(TAIL(pair(encArg(z0), encArg(z1))), ENCARG(cons_pair(z0, z1))) ENCARG(cons_tail(cons_snd(z0))) -> c13(TAIL(snd(encArg(z0))), ENCARG(cons_snd(z0))) ENCARG(cons_tail(cons_splitAt(z0, z1))) -> c13(TAIL(splitAt(encArg(z0), encArg(z1))), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_tail(cons_u(z0, z1, z2, z3))) -> c13(TAIL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_tail(cons_head(z0))) -> c13(TAIL(head(encArg(z0))), ENCARG(cons_head(z0))) ENCARG(cons_tail(cons_tail(z0))) -> c13(TAIL(tail(encArg(z0))), ENCARG(cons_tail(z0))) ENCARG(cons_tail(cons_sel(z0, z1))) -> c13(TAIL(sel(encArg(z0), encArg(z1))), ENCARG(cons_sel(z0, z1))) ENCARG(cons_tail(cons_afterNth(z0, z1))) -> c13(TAIL(afterNth(encArg(z0), encArg(z1))), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_tail(cons_take(z0, z1))) -> c13(TAIL(take(encArg(z0), encArg(z1))), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(x0, cons_active(z0))) -> c14(SEL(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_sel(x0, cons_mark(z0))) -> c14(SEL(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_sel(x0, cons_natsFrom(z0))) -> c14(SEL(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_sel(x0, cons_cons(z0, z1))) -> c14(SEL(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_sel(x0, cons_s(z0))) -> c14(SEL(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_sel(x0, cons_fst(z0))) -> c14(SEL(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_sel(x0, cons_pair(z0, z1))) -> c14(SEL(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_sel(x0, cons_snd(z0))) -> c14(SEL(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_sel(x0, cons_splitAt(z0, z1))) -> c14(SEL(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_sel(x0, cons_u(z0, z1, z2, z3))) -> c14(SEL(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_sel(x0, cons_head(z0))) -> c14(SEL(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_sel(x0, cons_tail(z0))) -> c14(SEL(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_sel(x0, cons_sel(z0, z1))) -> c14(SEL(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_sel(x0, cons_afterNth(z0, z1))) -> c14(SEL(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_sel(x0, cons_take(z0, z1))) -> c14(SEL(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_sel(cons_active(z0), x1)) -> c14(SEL(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_mark(z0), x1)) -> c14(SEL(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_natsFrom(z0), x1)) -> c14(SEL(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_cons(z0, z1), x1)) -> c14(SEL(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_s(z0), x1)) -> c14(SEL(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_fst(z0), x1)) -> c14(SEL(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_pair(z0, z1), x1)) -> c14(SEL(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_snd(z0), x1)) -> c14(SEL(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_splitAt(z0, z1), x1)) -> c14(SEL(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_u(z0, z1, z2, z3), x1)) -> c14(SEL(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_sel(cons_head(z0), x1)) -> c14(SEL(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_tail(z0), x1)) -> c14(SEL(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_sel(cons_sel(z0, z1), x1)) -> c14(SEL(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_afterNth(z0, z1), x1)) -> c14(SEL(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(cons_take(z0, z1), x1)) -> c14(SEL(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_sel(x0, 0)) -> c14(SEL(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_sel(x0, nil)) -> c14(SEL(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_sel(0, x1)) -> c14(SEL(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_sel(nil, x1)) -> c14(SEL(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, cons_active(z0))) -> c15(AFTERNTH(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_afterNth(x0, cons_mark(z0))) -> c15(AFTERNTH(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_afterNth(x0, cons_natsFrom(z0))) -> c15(AFTERNTH(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_afterNth(x0, cons_cons(z0, z1))) -> c15(AFTERNTH(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_afterNth(x0, cons_s(z0))) -> c15(AFTERNTH(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_afterNth(x0, cons_fst(z0))) -> c15(AFTERNTH(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_afterNth(x0, cons_pair(z0, z1))) -> c15(AFTERNTH(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_afterNth(x0, cons_snd(z0))) -> c15(AFTERNTH(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_afterNth(x0, cons_splitAt(z0, z1))) -> c15(AFTERNTH(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_afterNth(x0, cons_u(z0, z1, z2, z3))) -> c15(AFTERNTH(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_afterNth(x0, cons_head(z0))) -> c15(AFTERNTH(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_afterNth(x0, cons_tail(z0))) -> c15(AFTERNTH(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_afterNth(x0, cons_sel(z0, z1))) -> c15(AFTERNTH(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_afterNth(x0, cons_afterNth(z0, z1))) -> c15(AFTERNTH(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_afterNth(x0, cons_take(z0, z1))) -> c15(AFTERNTH(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_afterNth(cons_active(z0), x1)) -> c15(AFTERNTH(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_mark(z0), x1)) -> c15(AFTERNTH(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_natsFrom(z0), x1)) -> c15(AFTERNTH(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_cons(z0, z1), x1)) -> c15(AFTERNTH(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_s(z0), x1)) -> c15(AFTERNTH(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_fst(z0), x1)) -> c15(AFTERNTH(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_pair(z0, z1), x1)) -> c15(AFTERNTH(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_snd(z0), x1)) -> c15(AFTERNTH(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_splitAt(z0, z1), x1)) -> c15(AFTERNTH(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_u(z0, z1, z2, z3), x1)) -> c15(AFTERNTH(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_afterNth(cons_head(z0), x1)) -> c15(AFTERNTH(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_tail(z0), x1)) -> c15(AFTERNTH(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_afterNth(cons_sel(z0, z1), x1)) -> c15(AFTERNTH(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_afterNth(z0, z1), x1)) -> c15(AFTERNTH(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(cons_take(z0, z1), x1)) -> c15(AFTERNTH(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_afterNth(x0, 0)) -> c15(AFTERNTH(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_afterNth(x0, nil)) -> c15(AFTERNTH(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_afterNth(0, x1)) -> c15(AFTERNTH(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_afterNth(nil, x1)) -> c15(AFTERNTH(nil, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(x0, cons_active(z0))) -> c16(TAKE(encArg(x0), active(encArg(z0))), ENCARG(x0), ENCARG(cons_active(z0))) ENCARG(cons_take(x0, cons_mark(z0))) -> c16(TAKE(encArg(x0), mark(encArg(z0))), ENCARG(x0), ENCARG(cons_mark(z0))) ENCARG(cons_take(x0, cons_natsFrom(z0))) -> c16(TAKE(encArg(x0), natsFrom(encArg(z0))), ENCARG(x0), ENCARG(cons_natsFrom(z0))) ENCARG(cons_take(x0, cons_cons(z0, z1))) -> c16(TAKE(encArg(x0), cons(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_cons(z0, z1))) ENCARG(cons_take(x0, cons_s(z0))) -> c16(TAKE(encArg(x0), s(encArg(z0))), ENCARG(x0), ENCARG(cons_s(z0))) ENCARG(cons_take(x0, cons_fst(z0))) -> c16(TAKE(encArg(x0), fst(encArg(z0))), ENCARG(x0), ENCARG(cons_fst(z0))) ENCARG(cons_take(x0, cons_pair(z0, z1))) -> c16(TAKE(encArg(x0), pair(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_pair(z0, z1))) ENCARG(cons_take(x0, cons_snd(z0))) -> c16(TAKE(encArg(x0), snd(encArg(z0))), ENCARG(x0), ENCARG(cons_snd(z0))) ENCARG(cons_take(x0, cons_splitAt(z0, z1))) -> c16(TAKE(encArg(x0), splitAt(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_splitAt(z0, z1))) ENCARG(cons_take(x0, cons_u(z0, z1, z2, z3))) -> c16(TAKE(encArg(x0), u(encArg(z0), encArg(z1), encArg(z2), encArg(z3))), ENCARG(x0), ENCARG(cons_u(z0, z1, z2, z3))) ENCARG(cons_take(x0, cons_head(z0))) -> c16(TAKE(encArg(x0), head(encArg(z0))), ENCARG(x0), ENCARG(cons_head(z0))) ENCARG(cons_take(x0, cons_tail(z0))) -> c16(TAKE(encArg(x0), tail(encArg(z0))), ENCARG(x0), ENCARG(cons_tail(z0))) ENCARG(cons_take(x0, cons_sel(z0, z1))) -> c16(TAKE(encArg(x0), sel(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_sel(z0, z1))) ENCARG(cons_take(x0, cons_afterNth(z0, z1))) -> c16(TAKE(encArg(x0), afterNth(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_afterNth(z0, z1))) ENCARG(cons_take(x0, cons_take(z0, z1))) -> c16(TAKE(encArg(x0), take(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_take(z0, z1))) ENCARG(cons_take(cons_active(z0), x1)) -> c16(TAKE(active(encArg(z0)), encArg(x1)), ENCARG(cons_active(z0)), ENCARG(x1)) ENCARG(cons_take(cons_mark(z0), x1)) -> c16(TAKE(mark(encArg(z0)), encArg(x1)), ENCARG(cons_mark(z0)), ENCARG(x1)) ENCARG(cons_take(cons_natsFrom(z0), x1)) -> c16(TAKE(natsFrom(encArg(z0)), encArg(x1)), ENCARG(cons_natsFrom(z0)), ENCARG(x1)) ENCARG(cons_take(cons_cons(z0, z1), x1)) -> c16(TAKE(cons(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_cons(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_s(z0), x1)) -> c16(TAKE(s(encArg(z0)), encArg(x1)), ENCARG(cons_s(z0)), ENCARG(x1)) ENCARG(cons_take(cons_fst(z0), x1)) -> c16(TAKE(fst(encArg(z0)), encArg(x1)), ENCARG(cons_fst(z0)), ENCARG(x1)) ENCARG(cons_take(cons_pair(z0, z1), x1)) -> c16(TAKE(pair(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_pair(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_snd(z0), x1)) -> c16(TAKE(snd(encArg(z0)), encArg(x1)), ENCARG(cons_snd(z0)), ENCARG(x1)) ENCARG(cons_take(cons_splitAt(z0, z1), x1)) -> c16(TAKE(splitAt(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_splitAt(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_u(z0, z1, z2, z3), x1)) -> c16(TAKE(u(encArg(z0), encArg(z1), encArg(z2), encArg(z3)), encArg(x1)), ENCARG(cons_u(z0, z1, z2, z3)), ENCARG(x1)) ENCARG(cons_take(cons_head(z0), x1)) -> c16(TAKE(head(encArg(z0)), encArg(x1)), ENCARG(cons_head(z0)), ENCARG(x1)) ENCARG(cons_take(cons_tail(z0), x1)) -> c16(TAKE(tail(encArg(z0)), encArg(x1)), ENCARG(cons_tail(z0)), ENCARG(x1)) ENCARG(cons_take(cons_sel(z0, z1), x1)) -> c16(TAKE(sel(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_sel(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_afterNth(z0, z1), x1)) -> c16(TAKE(afterNth(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_afterNth(z0, z1)), ENCARG(x1)) ENCARG(cons_take(cons_take(z0, z1), x1)) -> c16(TAKE(take(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_take(z0, z1)), ENCARG(x1)) ENCARG(cons_take(x0, 0)) -> c16(TAKE(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_take(x0, nil)) -> c16(TAKE(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_take(0, x1)) -> c16(TAKE(0, encArg(x1)), ENCARG(x1)) ENCARG(cons_take(nil, x1)) -> c16(TAKE(nil, encArg(x1)), ENCARG(x1)) MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(tail(z0)) -> c56(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(natsFrom(z0))) -> c56(ACTIVE(tail(active(natsFrom(mark(z0))))), TAIL(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(tail(cons(z0, z1))) -> c56(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c56(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(fst(z0))) -> c56(ACTIVE(tail(active(fst(mark(z0))))), TAIL(mark(fst(z0))), MARK(fst(z0))) MARK(tail(pair(z0, z1))) -> c56(ACTIVE(tail(active(pair(mark(z0), mark(z1))))), TAIL(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(tail(snd(z0))) -> c56(ACTIVE(tail(active(snd(mark(z0))))), TAIL(mark(snd(z0))), MARK(snd(z0))) MARK(tail(splitAt(z0, z1))) -> c56(ACTIVE(tail(active(splitAt(mark(z0), mark(z1))))), TAIL(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(tail(0)) -> c56(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(nil)) -> c56(ACTIVE(tail(active(nil))), TAIL(mark(nil)), MARK(nil)) MARK(tail(u(z0, z1, z2, z3))) -> c56(ACTIVE(tail(active(u(mark(z0), z1, z2, z3)))), TAIL(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(tail(head(z0))) -> c56(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c56(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(sel(z0, z1))) -> c56(ACTIVE(tail(active(sel(mark(z0), mark(z1))))), TAIL(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c56(ACTIVE(tail(active(afterNth(mark(z0), mark(z1))))), TAIL(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(tail(take(z0, z1))) -> c56(ACTIVE(tail(active(take(mark(z0), mark(z1))))), TAIL(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(sel(z0, x1)) -> c57(ACTIVE(sel(z0, mark(x1))), SEL(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(sel(x0, z1)) -> c57(ACTIVE(sel(mark(x0), z1)), SEL(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(sel(x0, natsFrom(z0))) -> c57(ACTIVE(sel(mark(x0), active(natsFrom(mark(z0))))), SEL(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(sel(x0, cons(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(cons(mark(z0), z1)))), SEL(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(sel(x0, s(z0))) -> c57(ACTIVE(sel(mark(x0), active(s(mark(z0))))), SEL(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(sel(x0, fst(z0))) -> c57(ACTIVE(sel(mark(x0), active(fst(mark(z0))))), SEL(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(sel(x0, pair(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(pair(mark(z0), mark(z1))))), SEL(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(sel(x0, snd(z0))) -> c57(ACTIVE(sel(mark(x0), active(snd(mark(z0))))), SEL(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(sel(x0, splitAt(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(splitAt(mark(z0), mark(z1))))), SEL(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(sel(x0, 0)) -> c57(ACTIVE(sel(mark(x0), active(0))), SEL(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(sel(x0, nil)) -> c57(ACTIVE(sel(mark(x0), active(nil))), SEL(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(sel(x0, u(z0, z1, z2, z3))) -> c57(ACTIVE(sel(mark(x0), active(u(mark(z0), z1, z2, z3)))), SEL(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(sel(x0, head(z0))) -> c57(ACTIVE(sel(mark(x0), active(head(mark(z0))))), SEL(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(sel(x0, tail(z0))) -> c57(ACTIVE(sel(mark(x0), active(tail(mark(z0))))), SEL(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(sel(x0, sel(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(sel(mark(z0), mark(z1))))), SEL(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(sel(x0, afterNth(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(afterNth(mark(z0), mark(z1))))), SEL(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(sel(x0, take(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(take(mark(z0), mark(z1))))), SEL(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(sel(natsFrom(z0), x1)) -> c57(ACTIVE(sel(active(natsFrom(mark(z0))), mark(x1))), SEL(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(sel(cons(z0, z1), x1)) -> c57(ACTIVE(sel(active(cons(mark(z0), z1)), mark(x1))), SEL(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(sel(s(z0), x1)) -> c57(ACTIVE(sel(active(s(mark(z0))), mark(x1))), SEL(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(sel(fst(z0), x1)) -> c57(ACTIVE(sel(active(fst(mark(z0))), mark(x1))), SEL(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(sel(pair(z0, z1), x1)) -> c57(ACTIVE(sel(active(pair(mark(z0), mark(z1))), mark(x1))), SEL(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(sel(snd(z0), x1)) -> c57(ACTIVE(sel(active(snd(mark(z0))), mark(x1))), SEL(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(sel(splitAt(z0, z1), x1)) -> c57(ACTIVE(sel(active(splitAt(mark(z0), mark(z1))), mark(x1))), SEL(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(sel(0, x1)) -> c57(ACTIVE(sel(active(0), mark(x1))), SEL(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(sel(nil, x1)) -> c57(ACTIVE(sel(active(nil), mark(x1))), SEL(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(sel(u(z0, z1, z2, z3), x1)) -> c57(ACTIVE(sel(active(u(mark(z0), z1, z2, z3)), mark(x1))), SEL(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(sel(head(z0), x1)) -> c57(ACTIVE(sel(active(head(mark(z0))), mark(x1))), SEL(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(sel(tail(z0), x1)) -> c57(ACTIVE(sel(active(tail(mark(z0))), mark(x1))), SEL(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(sel(sel(z0, z1), x1)) -> c57(ACTIVE(sel(active(sel(mark(z0), mark(z1))), mark(x1))), SEL(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(sel(afterNth(z0, z1), x1)) -> c57(ACTIVE(sel(active(afterNth(mark(z0), mark(z1))), mark(x1))), SEL(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(sel(take(z0, z1), x1)) -> c57(ACTIVE(sel(active(take(mark(z0), mark(z1))), mark(x1))), SEL(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) S tuples: ACTIVE(fst(pair(z0, z1))) -> c35(MARK(z0)) ACTIVE(snd(pair(z0, z1))) -> c36(MARK(z1)) ACTIVE(splitAt(0, z0)) -> c37(MARK(pair(nil, z0)), PAIR(nil, z0)) ACTIVE(splitAt(s(z0), cons(z1, z2))) -> c38(MARK(u(splitAt(z0, z2), z0, z1, z2)), U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2)) ACTIVE(u(pair(z0, z1), z2, z3, z4)) -> c39(MARK(pair(cons(z3, z0), z1)), PAIR(cons(z3, z0), z1), CONS(z3, z0)) ACTIVE(head(cons(z0, z1))) -> c40(MARK(z0)) ACTIVE(tail(cons(z0, z1))) -> c41(MARK(z1)) MARK(afterNth(z0, z1)) -> c58(ACTIVE(afterNth(mark(z0), mark(z1))), AFTERNTH(mark(z0), mark(z1)), MARK(z0), MARK(z1)) MARK(take(z0, z1)) -> c59(ACTIVE(take(mark(z0), mark(z1))), TAKE(mark(z0), mark(z1)), MARK(z0), MARK(z1)) NATSFROM(mark(z0)) -> c60(NATSFROM(z0)) NATSFROM(active(z0)) -> c61(NATSFROM(z0)) CONS(mark(z0), z1) -> c62(CONS(z0, z1)) CONS(z0, mark(z1)) -> c63(CONS(z0, z1)) CONS(active(z0), z1) -> c64(CONS(z0, z1)) CONS(z0, active(z1)) -> c65(CONS(z0, z1)) S(mark(z0)) -> c66(S(z0)) S(active(z0)) -> c67(S(z0)) FST(mark(z0)) -> c68(FST(z0)) FST(active(z0)) -> c69(FST(z0)) PAIR(mark(z0), z1) -> c70(PAIR(z0, z1)) PAIR(z0, mark(z1)) -> c71(PAIR(z0, z1)) PAIR(active(z0), z1) -> c72(PAIR(z0, z1)) PAIR(z0, active(z1)) -> c73(PAIR(z0, z1)) SND(mark(z0)) -> c74(SND(z0)) SND(active(z0)) -> c75(SND(z0)) SPLITAT(mark(z0), z1) -> c76(SPLITAT(z0, z1)) SPLITAT(z0, mark(z1)) -> c77(SPLITAT(z0, z1)) SPLITAT(active(z0), z1) -> c78(SPLITAT(z0, z1)) SPLITAT(z0, active(z1)) -> c79(SPLITAT(z0, z1)) U(mark(z0), z1, z2, z3) -> c80(U(z0, z1, z2, z3)) U(z0, mark(z1), z2, z3) -> c81(U(z0, z1, z2, z3)) U(z0, z1, mark(z2), z3) -> c82(U(z0, z1, z2, z3)) U(z0, z1, z2, mark(z3)) -> c83(U(z0, z1, z2, z3)) U(active(z0), z1, z2, z3) -> c84(U(z0, z1, z2, z3)) U(z0, active(z1), z2, z3) -> c85(U(z0, z1, z2, z3)) U(z0, z1, active(z2), z3) -> c86(U(z0, z1, z2, z3)) U(z0, z1, z2, active(z3)) -> c87(U(z0, z1, z2, z3)) HEAD(mark(z0)) -> c88(HEAD(z0)) HEAD(active(z0)) -> c89(HEAD(z0)) TAIL(mark(z0)) -> c90(TAIL(z0)) TAIL(active(z0)) -> c91(TAIL(z0)) SEL(mark(z0), z1) -> c92(SEL(z0, z1)) SEL(z0, mark(z1)) -> c93(SEL(z0, z1)) SEL(active(z0), z1) -> c94(SEL(z0, z1)) SEL(z0, active(z1)) -> c95(SEL(z0, z1)) AFTERNTH(mark(z0), z1) -> c96(AFTERNTH(z0, z1)) AFTERNTH(z0, mark(z1)) -> c97(AFTERNTH(z0, z1)) AFTERNTH(active(z0), z1) -> c98(AFTERNTH(z0, z1)) AFTERNTH(z0, active(z1)) -> c99(AFTERNTH(z0, z1)) TAKE(mark(z0), z1) -> c100(TAKE(z0, z1)) TAKE(z0, mark(z1)) -> c101(TAKE(z0, z1)) TAKE(active(z0), z1) -> c102(TAKE(z0, z1)) TAKE(z0, active(z1)) -> c103(TAKE(z0, z1)) ACTIVE(natsFrom(z0)) -> c34(MARK(cons(z0, natsFrom(s(z0)))), S(z0)) ACTIVE(sel(z0, z1)) -> c42(MARK(head(afterNth(z0, z1))), AFTERNTH(z0, z1)) ACTIVE(take(z0, z1)) -> c43(MARK(fst(splitAt(z0, z1))), SPLITAT(z0, z1)) ACTIVE(afterNth(z0, z1)) -> c44(MARK(snd(splitAt(z0, z1))), SPLITAT(z0, z1)) MARK(0) -> c52 MARK(nil) -> c53 MARK(natsFrom(z0)) -> c45(ACTIVE(natsFrom(z0)), NATSFROM(mark(z0)), MARK(z0)) MARK(natsFrom(natsFrom(z0))) -> c45(ACTIVE(natsFrom(active(natsFrom(mark(z0))))), NATSFROM(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(natsFrom(cons(z0, z1))) -> c45(ACTIVE(natsFrom(active(cons(mark(z0), z1)))), NATSFROM(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(natsFrom(s(z0))) -> c45(ACTIVE(natsFrom(active(s(mark(z0))))), NATSFROM(mark(s(z0))), MARK(s(z0))) MARK(natsFrom(fst(z0))) -> c45(ACTIVE(natsFrom(active(fst(mark(z0))))), NATSFROM(mark(fst(z0))), MARK(fst(z0))) MARK(natsFrom(pair(z0, z1))) -> c45(ACTIVE(natsFrom(active(pair(mark(z0), mark(z1))))), NATSFROM(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(natsFrom(snd(z0))) -> c45(ACTIVE(natsFrom(active(snd(mark(z0))))), NATSFROM(mark(snd(z0))), MARK(snd(z0))) MARK(natsFrom(splitAt(z0, z1))) -> c45(ACTIVE(natsFrom(active(splitAt(mark(z0), mark(z1))))), NATSFROM(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(natsFrom(0)) -> c45(ACTIVE(natsFrom(active(0))), NATSFROM(mark(0)), MARK(0)) MARK(natsFrom(nil)) -> c45(ACTIVE(natsFrom(active(nil))), NATSFROM(mark(nil)), MARK(nil)) MARK(natsFrom(u(z0, z1, z2, z3))) -> c45(ACTIVE(natsFrom(active(u(mark(z0), z1, z2, z3)))), NATSFROM(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(natsFrom(head(z0))) -> c45(ACTIVE(natsFrom(active(head(mark(z0))))), NATSFROM(mark(head(z0))), MARK(head(z0))) MARK(natsFrom(tail(z0))) -> c45(ACTIVE(natsFrom(active(tail(mark(z0))))), NATSFROM(mark(tail(z0))), MARK(tail(z0))) MARK(natsFrom(sel(z0, z1))) -> c45(ACTIVE(natsFrom(active(sel(mark(z0), mark(z1))))), NATSFROM(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(natsFrom(afterNth(z0, z1))) -> c45(ACTIVE(natsFrom(active(afterNth(mark(z0), mark(z1))))), NATSFROM(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(natsFrom(take(z0, z1))) -> c45(ACTIVE(natsFrom(active(take(mark(z0), mark(z1))))), NATSFROM(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(cons(natsFrom(z0), x1)) -> c46(ACTIVE(cons(active(natsFrom(mark(z0))), x1)), CONS(mark(natsFrom(z0)), x1), MARK(natsFrom(z0))) MARK(cons(cons(z0, z1), x1)) -> c46(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1))) MARK(cons(s(z0), x1)) -> c46(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0))) MARK(cons(fst(z0), x1)) -> c46(ACTIVE(cons(active(fst(mark(z0))), x1)), CONS(mark(fst(z0)), x1), MARK(fst(z0))) MARK(cons(pair(z0, z1), x1)) -> c46(ACTIVE(cons(active(pair(mark(z0), mark(z1))), x1)), CONS(mark(pair(z0, z1)), x1), MARK(pair(z0, z1))) MARK(cons(snd(z0), x1)) -> c46(ACTIVE(cons(active(snd(mark(z0))), x1)), CONS(mark(snd(z0)), x1), MARK(snd(z0))) MARK(cons(splitAt(z0, z1), x1)) -> c46(ACTIVE(cons(active(splitAt(mark(z0), mark(z1))), x1)), CONS(mark(splitAt(z0, z1)), x1), MARK(splitAt(z0, z1))) MARK(cons(0, x1)) -> c46(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0)) MARK(cons(nil, x1)) -> c46(ACTIVE(cons(active(nil), x1)), CONS(mark(nil), x1), MARK(nil)) MARK(cons(u(z0, z1, z2, z3), x1)) -> c46(ACTIVE(cons(active(u(mark(z0), z1, z2, z3)), x1)), CONS(mark(u(z0, z1, z2, z3)), x1), MARK(u(z0, z1, z2, z3))) MARK(cons(head(z0), x1)) -> c46(ACTIVE(cons(active(head(mark(z0))), x1)), CONS(mark(head(z0)), x1), MARK(head(z0))) MARK(cons(tail(z0), x1)) -> c46(ACTIVE(cons(active(tail(mark(z0))), x1)), CONS(mark(tail(z0)), x1), MARK(tail(z0))) MARK(cons(sel(z0, z1), x1)) -> c46(ACTIVE(cons(active(sel(mark(z0), mark(z1))), x1)), CONS(mark(sel(z0, z1)), x1), MARK(sel(z0, z1))) MARK(cons(afterNth(z0, z1), x1)) -> c46(ACTIVE(cons(active(afterNth(mark(z0), mark(z1))), x1)), CONS(mark(afterNth(z0, z1)), x1), MARK(afterNth(z0, z1))) MARK(cons(take(z0, z1), x1)) -> c46(ACTIVE(cons(active(take(mark(z0), mark(z1))), x1)), CONS(mark(take(z0, z1)), x1), MARK(take(z0, z1))) MARK(cons(x0, x1)) -> c46(CONS(mark(x0), x1)) MARK(cons(z0, z1)) -> c46(CONS(mark(z0), z1), MARK(z0)) MARK(s(natsFrom(z0))) -> c47(ACTIVE(s(active(natsFrom(mark(z0))))), S(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(s(cons(z0, z1))) -> c47(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(s(s(z0))) -> c47(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0))) MARK(s(fst(z0))) -> c47(ACTIVE(s(active(fst(mark(z0))))), S(mark(fst(z0))), MARK(fst(z0))) MARK(s(pair(z0, z1))) -> c47(ACTIVE(s(active(pair(mark(z0), mark(z1))))), S(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(s(snd(z0))) -> c47(ACTIVE(s(active(snd(mark(z0))))), S(mark(snd(z0))), MARK(snd(z0))) MARK(s(splitAt(z0, z1))) -> c47(ACTIVE(s(active(splitAt(mark(z0), mark(z1))))), S(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(s(0)) -> c47(ACTIVE(s(active(0))), S(mark(0)), MARK(0)) MARK(s(nil)) -> c47(ACTIVE(s(active(nil))), S(mark(nil)), MARK(nil)) MARK(s(u(z0, z1, z2, z3))) -> c47(ACTIVE(s(active(u(mark(z0), z1, z2, z3)))), S(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(s(head(z0))) -> c47(ACTIVE(s(active(head(mark(z0))))), S(mark(head(z0))), MARK(head(z0))) MARK(s(tail(z0))) -> c47(ACTIVE(s(active(tail(mark(z0))))), S(mark(tail(z0))), MARK(tail(z0))) MARK(s(sel(z0, z1))) -> c47(ACTIVE(s(active(sel(mark(z0), mark(z1))))), S(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(s(afterNth(z0, z1))) -> c47(ACTIVE(s(active(afterNth(mark(z0), mark(z1))))), S(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(s(take(z0, z1))) -> c47(ACTIVE(s(active(take(mark(z0), mark(z1))))), S(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(s(z0)) -> c47(S(mark(z0)), MARK(z0)) MARK(fst(z0)) -> c48(ACTIVE(fst(z0)), FST(mark(z0)), MARK(z0)) MARK(fst(natsFrom(z0))) -> c48(ACTIVE(fst(active(natsFrom(mark(z0))))), FST(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(fst(cons(z0, z1))) -> c48(ACTIVE(fst(active(cons(mark(z0), z1)))), FST(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c48(ACTIVE(fst(active(s(mark(z0))))), FST(mark(s(z0))), MARK(s(z0))) MARK(fst(fst(z0))) -> c48(ACTIVE(fst(active(fst(mark(z0))))), FST(mark(fst(z0))), MARK(fst(z0))) MARK(fst(pair(z0, z1))) -> c48(ACTIVE(fst(active(pair(mark(z0), mark(z1))))), FST(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(fst(snd(z0))) -> c48(ACTIVE(fst(active(snd(mark(z0))))), FST(mark(snd(z0))), MARK(snd(z0))) MARK(fst(splitAt(z0, z1))) -> c48(ACTIVE(fst(active(splitAt(mark(z0), mark(z1))))), FST(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(fst(0)) -> c48(ACTIVE(fst(active(0))), FST(mark(0)), MARK(0)) MARK(fst(nil)) -> c48(ACTIVE(fst(active(nil))), FST(mark(nil)), MARK(nil)) MARK(fst(u(z0, z1, z2, z3))) -> c48(ACTIVE(fst(active(u(mark(z0), z1, z2, z3)))), FST(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(fst(head(z0))) -> c48(ACTIVE(fst(active(head(mark(z0))))), FST(mark(head(z0))), MARK(head(z0))) MARK(fst(tail(z0))) -> c48(ACTIVE(fst(active(tail(mark(z0))))), FST(mark(tail(z0))), MARK(tail(z0))) MARK(fst(sel(z0, z1))) -> c48(ACTIVE(fst(active(sel(mark(z0), mark(z1))))), FST(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c48(ACTIVE(fst(active(afterNth(mark(z0), mark(z1))))), FST(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(fst(take(z0, z1))) -> c48(ACTIVE(fst(active(take(mark(z0), mark(z1))))), FST(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(pair(z0, x1)) -> c49(ACTIVE(pair(z0, mark(x1))), PAIR(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(pair(x0, z1)) -> c49(ACTIVE(pair(mark(x0), z1)), PAIR(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(pair(x0, natsFrom(z0))) -> c49(ACTIVE(pair(mark(x0), active(natsFrom(mark(z0))))), PAIR(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(pair(x0, cons(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(cons(mark(z0), z1)))), PAIR(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(pair(x0, s(z0))) -> c49(ACTIVE(pair(mark(x0), active(s(mark(z0))))), PAIR(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(pair(x0, fst(z0))) -> c49(ACTIVE(pair(mark(x0), active(fst(mark(z0))))), PAIR(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(pair(x0, pair(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(pair(mark(z0), mark(z1))))), PAIR(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(pair(x0, snd(z0))) -> c49(ACTIVE(pair(mark(x0), active(snd(mark(z0))))), PAIR(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(pair(x0, splitAt(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(splitAt(mark(z0), mark(z1))))), PAIR(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(pair(x0, 0)) -> c49(ACTIVE(pair(mark(x0), active(0))), PAIR(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(pair(x0, nil)) -> c49(ACTIVE(pair(mark(x0), active(nil))), PAIR(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(pair(x0, u(z0, z1, z2, z3))) -> c49(ACTIVE(pair(mark(x0), active(u(mark(z0), z1, z2, z3)))), PAIR(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(pair(x0, head(z0))) -> c49(ACTIVE(pair(mark(x0), active(head(mark(z0))))), PAIR(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(pair(x0, tail(z0))) -> c49(ACTIVE(pair(mark(x0), active(tail(mark(z0))))), PAIR(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(pair(x0, sel(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(sel(mark(z0), mark(z1))))), PAIR(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(pair(x0, afterNth(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(afterNth(mark(z0), mark(z1))))), PAIR(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(pair(x0, take(z0, z1))) -> c49(ACTIVE(pair(mark(x0), active(take(mark(z0), mark(z1))))), PAIR(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(pair(natsFrom(z0), x1)) -> c49(ACTIVE(pair(active(natsFrom(mark(z0))), mark(x1))), PAIR(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(pair(cons(z0, z1), x1)) -> c49(ACTIVE(pair(active(cons(mark(z0), z1)), mark(x1))), PAIR(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(pair(s(z0), x1)) -> c49(ACTIVE(pair(active(s(mark(z0))), mark(x1))), PAIR(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(pair(fst(z0), x1)) -> c49(ACTIVE(pair(active(fst(mark(z0))), mark(x1))), PAIR(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(pair(pair(z0, z1), x1)) -> c49(ACTIVE(pair(active(pair(mark(z0), mark(z1))), mark(x1))), PAIR(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(pair(snd(z0), x1)) -> c49(ACTIVE(pair(active(snd(mark(z0))), mark(x1))), PAIR(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(pair(splitAt(z0, z1), x1)) -> c49(ACTIVE(pair(active(splitAt(mark(z0), mark(z1))), mark(x1))), PAIR(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(pair(0, x1)) -> c49(ACTIVE(pair(active(0), mark(x1))), PAIR(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(pair(nil, x1)) -> c49(ACTIVE(pair(active(nil), mark(x1))), PAIR(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(pair(u(z0, z1, z2, z3), x1)) -> c49(ACTIVE(pair(active(u(mark(z0), z1, z2, z3)), mark(x1))), PAIR(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(pair(head(z0), x1)) -> c49(ACTIVE(pair(active(head(mark(z0))), mark(x1))), PAIR(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(pair(tail(z0), x1)) -> c49(ACTIVE(pair(active(tail(mark(z0))), mark(x1))), PAIR(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(pair(sel(z0, z1), x1)) -> c49(ACTIVE(pair(active(sel(mark(z0), mark(z1))), mark(x1))), PAIR(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(pair(afterNth(z0, z1), x1)) -> c49(ACTIVE(pair(active(afterNth(mark(z0), mark(z1))), mark(x1))), PAIR(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(pair(take(z0, z1), x1)) -> c49(ACTIVE(pair(active(take(mark(z0), mark(z1))), mark(x1))), PAIR(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(snd(z0)) -> c50(ACTIVE(snd(z0)), SND(mark(z0)), MARK(z0)) MARK(snd(natsFrom(z0))) -> c50(ACTIVE(snd(active(natsFrom(mark(z0))))), SND(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(snd(cons(z0, z1))) -> c50(ACTIVE(snd(active(cons(mark(z0), z1)))), SND(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c50(ACTIVE(snd(active(s(mark(z0))))), SND(mark(s(z0))), MARK(s(z0))) MARK(snd(fst(z0))) -> c50(ACTIVE(snd(active(fst(mark(z0))))), SND(mark(fst(z0))), MARK(fst(z0))) MARK(snd(pair(z0, z1))) -> c50(ACTIVE(snd(active(pair(mark(z0), mark(z1))))), SND(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(snd(snd(z0))) -> c50(ACTIVE(snd(active(snd(mark(z0))))), SND(mark(snd(z0))), MARK(snd(z0))) MARK(snd(splitAt(z0, z1))) -> c50(ACTIVE(snd(active(splitAt(mark(z0), mark(z1))))), SND(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(snd(0)) -> c50(ACTIVE(snd(active(0))), SND(mark(0)), MARK(0)) MARK(snd(nil)) -> c50(ACTIVE(snd(active(nil))), SND(mark(nil)), MARK(nil)) MARK(snd(u(z0, z1, z2, z3))) -> c50(ACTIVE(snd(active(u(mark(z0), z1, z2, z3)))), SND(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(snd(head(z0))) -> c50(ACTIVE(snd(active(head(mark(z0))))), SND(mark(head(z0))), MARK(head(z0))) MARK(snd(tail(z0))) -> c50(ACTIVE(snd(active(tail(mark(z0))))), SND(mark(tail(z0))), MARK(tail(z0))) MARK(snd(sel(z0, z1))) -> c50(ACTIVE(snd(active(sel(mark(z0), mark(z1))))), SND(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c50(ACTIVE(snd(active(afterNth(mark(z0), mark(z1))))), SND(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(snd(take(z0, z1))) -> c50(ACTIVE(snd(active(take(mark(z0), mark(z1))))), SND(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(splitAt(z0, x1)) -> c51(ACTIVE(splitAt(z0, mark(x1))), SPLITAT(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(splitAt(x0, z1)) -> c51(ACTIVE(splitAt(mark(x0), z1)), SPLITAT(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(splitAt(x0, natsFrom(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(natsFrom(mark(z0))))), SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(splitAt(x0, cons(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(cons(mark(z0), z1)))), SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(s(mark(z0))))), SPLITAT(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(splitAt(x0, fst(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(fst(mark(z0))))), SPLITAT(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(splitAt(x0, pair(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(pair(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(snd(mark(z0))))), SPLITAT(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(splitAt(x0, splitAt(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(splitAt(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(splitAt(x0, 0)) -> c51(ACTIVE(splitAt(mark(x0), active(0))), SPLITAT(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(splitAt(x0, nil)) -> c51(ACTIVE(splitAt(mark(x0), active(nil))), SPLITAT(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(splitAt(x0, u(z0, z1, z2, z3))) -> c51(ACTIVE(splitAt(mark(x0), active(u(mark(z0), z1, z2, z3)))), SPLITAT(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(splitAt(x0, head(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(head(mark(z0))))), SPLITAT(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(splitAt(x0, tail(z0))) -> c51(ACTIVE(splitAt(mark(x0), active(tail(mark(z0))))), SPLITAT(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(sel(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(afterNth(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(splitAt(x0, take(z0, z1))) -> c51(ACTIVE(splitAt(mark(x0), active(take(mark(z0), mark(z1))))), SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(splitAt(natsFrom(z0), x1)) -> c51(ACTIVE(splitAt(active(natsFrom(mark(z0))), mark(x1))), SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(cons(mark(z0), z1)), mark(x1))), SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c51(ACTIVE(splitAt(active(s(mark(z0))), mark(x1))), SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c51(ACTIVE(splitAt(active(fst(mark(z0))), mark(x1))), SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(pair(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c51(ACTIVE(splitAt(active(snd(mark(z0))), mark(x1))), SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(splitAt(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(splitAt(0, x1)) -> c51(ACTIVE(splitAt(active(0), mark(x1))), SPLITAT(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(splitAt(nil, x1)) -> c51(ACTIVE(splitAt(active(nil), mark(x1))), SPLITAT(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(splitAt(u(z0, z1, z2, z3), x1)) -> c51(ACTIVE(splitAt(active(u(mark(z0), z1, z2, z3)), mark(x1))), SPLITAT(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c51(ACTIVE(splitAt(active(head(mark(z0))), mark(x1))), SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c51(ACTIVE(splitAt(active(tail(mark(z0))), mark(x1))), SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(sel(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(afterNth(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c51(ACTIVE(splitAt(active(take(mark(z0), mark(z1))), mark(x1))), SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) MARK(u(z0, z1, z2, z3)) -> c54(ACTIVE(u(z0, z1, z2, z3)), U(mark(z0), z1, z2, z3), MARK(z0)) MARK(u(natsFrom(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(natsFrom(mark(z0))), x1, x2, x3)), U(mark(natsFrom(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(u(cons(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(cons(mark(z0), z1)), x1, x2, x3)), U(mark(cons(z0, z1)), x1, x2, x3), MARK(cons(z0, z1))) MARK(u(s(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(s(mark(z0))), x1, x2, x3)), U(mark(s(z0)), x1, x2, x3), MARK(s(z0))) MARK(u(fst(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(fst(mark(z0))), x1, x2, x3)), U(mark(fst(z0)), x1, x2, x3), MARK(fst(z0))) MARK(u(pair(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(pair(mark(z0), mark(z1))), x1, x2, x3)), U(mark(pair(z0, z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(u(snd(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(snd(mark(z0))), x1, x2, x3)), U(mark(snd(z0)), x1, x2, x3), MARK(snd(z0))) MARK(u(splitAt(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(splitAt(mark(z0), mark(z1))), x1, x2, x3)), U(mark(splitAt(z0, z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(u(0, x1, x2, x3)) -> c54(ACTIVE(u(active(0), x1, x2, x3)), U(mark(0), x1, x2, x3), MARK(0)) MARK(u(nil, x1, x2, x3)) -> c54(ACTIVE(u(active(nil), x1, x2, x3)), U(mark(nil), x1, x2, x3), MARK(nil)) MARK(u(u(z0, z1, z2, z3), x1, x2, x3)) -> c54(ACTIVE(u(active(u(mark(z0), z1, z2, z3)), x1, x2, x3)), U(mark(u(z0, z1, z2, z3)), x1, x2, x3), MARK(u(z0, z1, z2, z3))) MARK(u(head(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(head(mark(z0))), x1, x2, x3)), U(mark(head(z0)), x1, x2, x3), MARK(head(z0))) MARK(u(tail(z0), x1, x2, x3)) -> c54(ACTIVE(u(active(tail(mark(z0))), x1, x2, x3)), U(mark(tail(z0)), x1, x2, x3), MARK(tail(z0))) MARK(u(sel(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(sel(mark(z0), mark(z1))), x1, x2, x3)), U(mark(sel(z0, z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(u(afterNth(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(afterNth(mark(z0), mark(z1))), x1, x2, x3)), U(mark(afterNth(z0, z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(u(take(z0, z1), x1, x2, x3)) -> c54(ACTIVE(u(active(take(mark(z0), mark(z1))), x1, x2, x3)), U(mark(take(z0, z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(u(x0, x1, x2, x3)) -> c54(U(mark(x0), x1, x2, x3)) MARK(head(z0)) -> c55(ACTIVE(head(z0)), HEAD(mark(z0)), MARK(z0)) MARK(head(natsFrom(z0))) -> c55(ACTIVE(head(active(natsFrom(mark(z0))))), HEAD(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(head(cons(z0, z1))) -> c55(ACTIVE(head(active(cons(mark(z0), z1)))), HEAD(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c55(ACTIVE(head(active(s(mark(z0))))), HEAD(mark(s(z0))), MARK(s(z0))) MARK(head(fst(z0))) -> c55(ACTIVE(head(active(fst(mark(z0))))), HEAD(mark(fst(z0))), MARK(fst(z0))) MARK(head(pair(z0, z1))) -> c55(ACTIVE(head(active(pair(mark(z0), mark(z1))))), HEAD(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(head(snd(z0))) -> c55(ACTIVE(head(active(snd(mark(z0))))), HEAD(mark(snd(z0))), MARK(snd(z0))) MARK(head(splitAt(z0, z1))) -> c55(ACTIVE(head(active(splitAt(mark(z0), mark(z1))))), HEAD(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(head(0)) -> c55(ACTIVE(head(active(0))), HEAD(mark(0)), MARK(0)) MARK(head(nil)) -> c55(ACTIVE(head(active(nil))), HEAD(mark(nil)), MARK(nil)) MARK(head(u(z0, z1, z2, z3))) -> c55(ACTIVE(head(active(u(mark(z0), z1, z2, z3)))), HEAD(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(head(head(z0))) -> c55(ACTIVE(head(active(head(mark(z0))))), HEAD(mark(head(z0))), MARK(head(z0))) MARK(head(tail(z0))) -> c55(ACTIVE(head(active(tail(mark(z0))))), HEAD(mark(tail(z0))), MARK(tail(z0))) MARK(head(sel(z0, z1))) -> c55(ACTIVE(head(active(sel(mark(z0), mark(z1))))), HEAD(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(head(afterNth(z0, z1))) -> c55(ACTIVE(head(active(afterNth(mark(z0), mark(z1))))), HEAD(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(head(take(z0, z1))) -> c55(ACTIVE(head(active(take(mark(z0), mark(z1))))), HEAD(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(tail(z0)) -> c56(ACTIVE(tail(z0)), TAIL(mark(z0)), MARK(z0)) MARK(tail(natsFrom(z0))) -> c56(ACTIVE(tail(active(natsFrom(mark(z0))))), TAIL(mark(natsFrom(z0))), MARK(natsFrom(z0))) MARK(tail(cons(z0, z1))) -> c56(ACTIVE(tail(active(cons(mark(z0), z1)))), TAIL(mark(cons(z0, z1))), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c56(ACTIVE(tail(active(s(mark(z0))))), TAIL(mark(s(z0))), MARK(s(z0))) MARK(tail(fst(z0))) -> c56(ACTIVE(tail(active(fst(mark(z0))))), TAIL(mark(fst(z0))), MARK(fst(z0))) MARK(tail(pair(z0, z1))) -> c56(ACTIVE(tail(active(pair(mark(z0), mark(z1))))), TAIL(mark(pair(z0, z1))), MARK(pair(z0, z1))) MARK(tail(snd(z0))) -> c56(ACTIVE(tail(active(snd(mark(z0))))), TAIL(mark(snd(z0))), MARK(snd(z0))) MARK(tail(splitAt(z0, z1))) -> c56(ACTIVE(tail(active(splitAt(mark(z0), mark(z1))))), TAIL(mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) MARK(tail(0)) -> c56(ACTIVE(tail(active(0))), TAIL(mark(0)), MARK(0)) MARK(tail(nil)) -> c56(ACTIVE(tail(active(nil))), TAIL(mark(nil)), MARK(nil)) MARK(tail(u(z0, z1, z2, z3))) -> c56(ACTIVE(tail(active(u(mark(z0), z1, z2, z3)))), TAIL(mark(u(z0, z1, z2, z3))), MARK(u(z0, z1, z2, z3))) MARK(tail(head(z0))) -> c56(ACTIVE(tail(active(head(mark(z0))))), TAIL(mark(head(z0))), MARK(head(z0))) MARK(tail(tail(z0))) -> c56(ACTIVE(tail(active(tail(mark(z0))))), TAIL(mark(tail(z0))), MARK(tail(z0))) MARK(tail(sel(z0, z1))) -> c56(ACTIVE(tail(active(sel(mark(z0), mark(z1))))), TAIL(mark(sel(z0, z1))), MARK(sel(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c56(ACTIVE(tail(active(afterNth(mark(z0), mark(z1))))), TAIL(mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) MARK(tail(take(z0, z1))) -> c56(ACTIVE(tail(active(take(mark(z0), mark(z1))))), TAIL(mark(take(z0, z1))), MARK(take(z0, z1))) MARK(sel(z0, x1)) -> c57(ACTIVE(sel(z0, mark(x1))), SEL(mark(z0), mark(x1)), MARK(z0), MARK(x1)) MARK(sel(x0, z1)) -> c57(ACTIVE(sel(mark(x0), z1)), SEL(mark(x0), mark(z1)), MARK(x0), MARK(z1)) MARK(sel(x0, natsFrom(z0))) -> c57(ACTIVE(sel(mark(x0), active(natsFrom(mark(z0))))), SEL(mark(x0), mark(natsFrom(z0))), MARK(x0), MARK(natsFrom(z0))) MARK(sel(x0, cons(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(cons(mark(z0), z1)))), SEL(mark(x0), mark(cons(z0, z1))), MARK(x0), MARK(cons(z0, z1))) MARK(sel(x0, s(z0))) -> c57(ACTIVE(sel(mark(x0), active(s(mark(z0))))), SEL(mark(x0), mark(s(z0))), MARK(x0), MARK(s(z0))) MARK(sel(x0, fst(z0))) -> c57(ACTIVE(sel(mark(x0), active(fst(mark(z0))))), SEL(mark(x0), mark(fst(z0))), MARK(x0), MARK(fst(z0))) MARK(sel(x0, pair(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(pair(mark(z0), mark(z1))))), SEL(mark(x0), mark(pair(z0, z1))), MARK(x0), MARK(pair(z0, z1))) MARK(sel(x0, snd(z0))) -> c57(ACTIVE(sel(mark(x0), active(snd(mark(z0))))), SEL(mark(x0), mark(snd(z0))), MARK(x0), MARK(snd(z0))) MARK(sel(x0, splitAt(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(splitAt(mark(z0), mark(z1))))), SEL(mark(x0), mark(splitAt(z0, z1))), MARK(x0), MARK(splitAt(z0, z1))) MARK(sel(x0, 0)) -> c57(ACTIVE(sel(mark(x0), active(0))), SEL(mark(x0), mark(0)), MARK(x0), MARK(0)) MARK(sel(x0, nil)) -> c57(ACTIVE(sel(mark(x0), active(nil))), SEL(mark(x0), mark(nil)), MARK(x0), MARK(nil)) MARK(sel(x0, u(z0, z1, z2, z3))) -> c57(ACTIVE(sel(mark(x0), active(u(mark(z0), z1, z2, z3)))), SEL(mark(x0), mark(u(z0, z1, z2, z3))), MARK(x0), MARK(u(z0, z1, z2, z3))) MARK(sel(x0, head(z0))) -> c57(ACTIVE(sel(mark(x0), active(head(mark(z0))))), SEL(mark(x0), mark(head(z0))), MARK(x0), MARK(head(z0))) MARK(sel(x0, tail(z0))) -> c57(ACTIVE(sel(mark(x0), active(tail(mark(z0))))), SEL(mark(x0), mark(tail(z0))), MARK(x0), MARK(tail(z0))) MARK(sel(x0, sel(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(sel(mark(z0), mark(z1))))), SEL(mark(x0), mark(sel(z0, z1))), MARK(x0), MARK(sel(z0, z1))) MARK(sel(x0, afterNth(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(afterNth(mark(z0), mark(z1))))), SEL(mark(x0), mark(afterNth(z0, z1))), MARK(x0), MARK(afterNth(z0, z1))) MARK(sel(x0, take(z0, z1))) -> c57(ACTIVE(sel(mark(x0), active(take(mark(z0), mark(z1))))), SEL(mark(x0), mark(take(z0, z1))), MARK(x0), MARK(take(z0, z1))) MARK(sel(natsFrom(z0), x1)) -> c57(ACTIVE(sel(active(natsFrom(mark(z0))), mark(x1))), SEL(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0)), MARK(x1)) MARK(sel(cons(z0, z1), x1)) -> c57(ACTIVE(sel(active(cons(mark(z0), z1)), mark(x1))), SEL(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1)), MARK(x1)) MARK(sel(s(z0), x1)) -> c57(ACTIVE(sel(active(s(mark(z0))), mark(x1))), SEL(mark(s(z0)), mark(x1)), MARK(s(z0)), MARK(x1)) MARK(sel(fst(z0), x1)) -> c57(ACTIVE(sel(active(fst(mark(z0))), mark(x1))), SEL(mark(fst(z0)), mark(x1)), MARK(fst(z0)), MARK(x1)) MARK(sel(pair(z0, z1), x1)) -> c57(ACTIVE(sel(active(pair(mark(z0), mark(z1))), mark(x1))), SEL(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1)), MARK(x1)) MARK(sel(snd(z0), x1)) -> c57(ACTIVE(sel(active(snd(mark(z0))), mark(x1))), SEL(mark(snd(z0)), mark(x1)), MARK(snd(z0)), MARK(x1)) MARK(sel(splitAt(z0, z1), x1)) -> c57(ACTIVE(sel(active(splitAt(mark(z0), mark(z1))), mark(x1))), SEL(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1)), MARK(x1)) MARK(sel(0, x1)) -> c57(ACTIVE(sel(active(0), mark(x1))), SEL(mark(0), mark(x1)), MARK(0), MARK(x1)) MARK(sel(nil, x1)) -> c57(ACTIVE(sel(active(nil), mark(x1))), SEL(mark(nil), mark(x1)), MARK(nil), MARK(x1)) MARK(sel(u(z0, z1, z2, z3), x1)) -> c57(ACTIVE(sel(active(u(mark(z0), z1, z2, z3)), mark(x1))), SEL(mark(u(z0, z1, z2, z3)), mark(x1)), MARK(u(z0, z1, z2, z3)), MARK(x1)) MARK(sel(head(z0), x1)) -> c57(ACTIVE(sel(active(head(mark(z0))), mark(x1))), SEL(mark(head(z0)), mark(x1)), MARK(head(z0)), MARK(x1)) MARK(sel(tail(z0), x1)) -> c57(ACTIVE(sel(active(tail(mark(z0))), mark(x1))), SEL(mark(tail(z0)), mark(x1)), MARK(tail(z0)), MARK(x1)) MARK(sel(sel(z0, z1), x1)) -> c57(ACTIVE(sel(active(sel(mark(z0), mark(z1))), mark(x1))), SEL(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1)), MARK(x1)) MARK(sel(afterNth(z0, z1), x1)) -> c57(ACTIVE(sel(active(afterNth(mark(z0), mark(z1))), mark(x1))), SEL(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1)), MARK(x1)) MARK(sel(take(z0, z1), x1)) -> c57(ACTIVE(sel(active(take(mark(z0), mark(z1))), mark(x1))), SEL(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1)), MARK(x1)) K tuples:none Defined Rule Symbols: encArg_1, active_1, mark_1, natsFrom_1, cons_2, s_1, fst_1, pair_2, snd_1, splitAt_2, u_4, head_1, tail_1, sel_2, afterNth_2, take_2 Defined Pair Symbols: ACTIVE_1, MARK_1, NATSFROM_1, CONS_2, S_1, FST_1, PAIR_2, SND_1, SPLITAT_2, U_4, HEAD_1, TAIL_1, SEL_2, AFTERNTH_2, TAKE_2, ENCODE_ACTIVE_1, ENCODE_NATSFROM_1, ENCODE_MARK_1, ENCODE_CONS_2, ENCODE_S_1, ENCODE_FST_1, ENCODE_PAIR_2, ENCODE_SND_1, ENCODE_SPLITAT_2, ENCODE_U_4, ENCODE_HEAD_1, ENCODE_TAIL_1, ENCODE_SEL_2, ENCODE_AFTERNTH_2, ENCODE_TAKE_2, ENCARG_1 Compound Symbols: c35_1, c36_1, c37_2, c38_3, c39_3, c40_1, c41_1, c58_4, c59_4, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c34_2, c42_2, c43_2, c44_2, c52, c53, c_1, c2_2, c3_2, c3_1, c4_2, c5_3, c5_2, c6_2, c7_2, c8_3, c8_2, c9_2, c10_3, c10_2, c11_5, c11_4, c12_2, c13_2, c14_3, c14_2, c15_3, c15_2, c16_3, c16_2, c45_3, c46_3, c46_1, c46_2, c47_3, c47_2, c48_3, c49_4, c50_3, c51_4, c54_3, c54_1, c55_3, c56_3, c57_4